- sziku69: Fűzzük össze a szavakat :)
- gban: Ingyen kellene, de tegnapra
- Luck Dragon: Asszociációs játék. :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Szoszo94: Xiaomi Mi Router 3G - Padavanra fel!
- Gurulunk, WAZE?!
- Geri Bátyó: B550 szűk keresztmetszet, de mi és miért?
- sh4d0w: Csak a profit - emberélet nem számít
- vrob: Az IBM PC és a játékok a 80-as években
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
-
LOGOUT
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
martonx
veterán
Na végre valami konkrétum, hogy mit is szeretnél, mert a szeretnék valamitet, értem én, hogy valamit szeretnél, de mégis mit válaszoljak rá.
Ez így viszont már némi konkrétum, amiben meg lehet kapaszkodni.Ezt csak hackelve, és csúnyán tudod megoldani, pl. behúzod az iframe-et az oldaladra, hideolod / 1px méretűre zsugorítod, utána már javascripttel ki tudod szedni belőle amit akarsz.
Ha az oldaladon valuta érték megjelenítés a cél, akkor ehhez vannak direkt ingyenes API-k pl. MNB-nek, amiket szintén le tudsz javascripttel kérdezni. Én az iframe-es hackelős megoldás helyett, ezt az utat javaslom.
-
Rossz az irány.
Ha iframebe teszed be, akkor nem tudod kontrollálni mi töltődjön be. Be fog töltődni az egész oldal.Ezért javasoltam a Fetch APIt, vagy Axiost, és JQueryt parsoláshoz, de így is elég lassú lesz, és feleslegesen fog letölteni a böngésző több kilobájtnyi HTMLt.
Javasolnám, hogy keress valami exchange rate APIt, ahonnan a árfolyamot gyorsan és egyszerűen meg tudod kapni.
Amit te akarsz az már a web scraping témakör ami nehézkes, macerás, és nem hatékony.
-
Semmi gond azzal, ha itt kérdezel, hiszen ez a JavaScript topik, jó helyen vagy.
Én is így kezdtem, sok évvel ezelőtt, lenyírtam agyilag jópár fórumtársat egy másik fórumon mire megértették, hogy mit is akarok, hiszen én magam sem tudtam igazán.
W3school az "elmegy" kategória.
Ha elakadtál egy kóddal, nyugodtan illeszd be, vagy, ha hosszú akkor linkeld pastebinről vagy gist.github.com ról.
Ha elméleti kérdésed van, akkor kérlek írd le pontosan, hogy mit szeretnél csinálni, hol, hogyan, meddig jutottál, mi a végcél, hátha van egyszerűbb megoldás is, mint amerre elindultál.
Ha van egy meglévő oldalad akkor a fetch API minden modern böngészőben benne van, azzal tudsz lekéréseket indítani, nem kell külön betölteni semmilyen kliens könyvtárat.
Javaslom a böngésződben a fejlesztői konzol használatát, ott egyből ki is tudod próbálni a kódokat, vagy codesandbox, codepen és hasonló online oldalakat is használhatsz, itt el tudod menteni a kódodat, és tudod linkelni ide, ha segítséget kérsz.
Tehát akkor most kérlek írd le, hogy honnan próbálsz lekéréseket indítani, nézz utána a fetch apinak, és azt is írd le, hogy milyen oldalt próbálsz lekérni.
Googleban támpont lehet mondjuk egy "ajax fetch" keresés.
Értjük, hogy le akarsz kérni HTML tartalmat egy másik oldalról, de nem tudjuk milyen környezetben próbálkozol, meddig jutottál, mit tudsz, mit nem tudsz, mit próbáltál, mit nem, mi az amit le akarsz kérni...
Ha nem ragaszkodsz mindenáron a böngészős környezethez, akkor Node.jsben sokkal nagyobb szabadsággal dolgozhatsz. Bármit, bármikor, bárhonnan lekérhetsz, feldolgozhatsz, nincsenek böngészős szigorítások, CORS és társai.
Azért is jó lenne tudni, hogy mit és honnan akarsz lekérni, mert lehet, hogy van egy JSON REST APIjuk, és nem kell a HTML parsolással bohóckodnod.
-
Ha válaszolsz a legeslegelső kérdésemre, akkor többet tudunk segíteni.
Tehát van egy saját weboldalad amin meg akarsz jeleníteni olyan adatot ami egy másik weboldalon elérhető, de nem akarod letölteni a másik oldal kapcsolódó fájljait, csak a HTMLt.
Értem én, csak a CORS és más finomságok miatt ez nem mindig járható út tisztán böngészőből, de próbáld ki, hogy mit enged a forrás szervere.
-
.45
csendes tag
-
martonx
veterán
Az az igazság, hogy annyira suta volt a kérdés, hogy a válasz is az lett. Megoldható? Igen. Egyébként pár sor kóddal megoldható (tippre, akár egy sorral is, pl. powershellel ennyi:
Invoke-WebRequest -Uri "http://prohardver.hu"
). Aztán, hogy milyen nyelven, milyen formában, hogy fogod megoldani, honnan tudjam mihez értesz? NodeJs, PHP, C# bármilyen nyelv megfelel erre. Aztán ha megvan a letöltött html stringként, akkor már csak parseolni kell valamivel. -
-
-
cattus
addikt
Megoldottam Promise-t használva (sejtésemre máshogy nagyon nem is lehet), itt a kód. Raktam bele egy kis késleltetést (setTimeout), hogy látszódjon a folyamat, mert anélkül instant lefut az egész.
Visszatérve az eredeti problémára és kódra: azért nem írta ki, hogy "dolgozom az eredményen...", mert a UI mindaddig nem frissül, amíg mindkét függvény futása nem ért véget teljesen.
-
Doink
aktív tag
Az összefüggés ott van hogy a 2 függvényed blokkoló az onclickben, vagyis a böngésző addig nem rajzolja újra az oldalt amíg nem végzett mind2vel. (addig befagy a böngésző mivel 1 szál van)
Az én példámban is csak az utolsó alert() OK után fogja újrarajzolni neked.Ennek az oka az event-loop modell, ami akkor kurva jó ha sok apró dolgot csinálsz async (jellemzően webes felületeken ez történik).
Operaban ctrl+shift+I
-
Doink
aktív tag
Példa, ez mind blokkoló másold be az F12 console-ba és nyomj entert:
document.body.innerHTML = "Ezt se látod";
alert("ugye?");
document.body.innerHTML = "Meg ezt se látod";
alert("ugyehogyugye?");
document.body.innerHTML = "Na ezt látod";
alert("Na majd most fogja újrarajzolni az oldalt a böngésző mert előtte minden blokkoló"); -
-
Karma
félisten
Pedig minden benne van ebben a cikkben, ami kell hozzá. A drag and dropos példakód handleFileSelectjében egy fájllistát kapsz, amin végig tudsz menni ciklussal (mint a példakód), és nyiszálhatod őket szabadon.
Az előző kódrészlet meg azért nem működött, mert te böngészőben futó megoldást keresel (amit nem mondtál), tick pedig Node-hoz adott egy lehetséges megoldást.
-
tick
aktív tag
Google első találtat, nem próbáltam ki. Az biztos hogy lehet
fs.open('file.txt', 'r', function(err, fd) {
if (err)
throw err;
var buffer = new Buffer(1);
while (true)
{
var num = fs.readSync(fd, buffer, 0, 1, null);
if (num === 0)
break;
console.log('byte read', buffer[0]);
}
}); -
fordfairlane
veterán
Ez a tutorial egyszerűen szörnyű. A JSON nem objektum, hanem egy nyelvfüggetlen szövegalapú adatcsere-formátum, ami a javascript object-literal szintaxis szűkített változata. Amit te keresel az az ún. object literal, és az array-literal.
Object literal:
var a = {
key1: value,
key2: value,
key3: value
};value bármi lehet, amit változóba lehet tenni, másik objektum, tömb vagy függvény is.
Array literal:
var arr = [value1, value2, value3, value4];
Az értékek itt is lehetnek akármik, amik egy értékadás jobboldalán szerepelhetnek, tehát akár objektumok vagy függvények is. Tömbnél a kulcsok numerikus növekvő értékek lesznek.
Javascriptben az objektumok egyszerű konténerek, amik névvel azonosítható propertyket tartalmaznak. A property értéke lehet akár tömb is. A tömbök is hasonlóképp tartalmazhatnak bármilyen elemet, így objektumokat és tömböket kvázi tetszőlegesen ágyazhatsz egymásba.
Ha a kettőt kombinálod:
var a = [
{
key1: [
{
key1: value
},
{
key1: function() {}
}
],
key2: [1, 2, 3]
},
{
key1: ["string1", "string2"],
}
]; -
dqdb
nagyúr
Igen, meglehetősen egyszerű volt megtalálni:
1. megnyitottam az oldalt, majd utána a Developer Tools-t a Ctrl+Shift+I megnyomásával, ott Network fül
2. gépeltem a mezőbe, és láthatóan nem volt hálózati forgalom, így egyértelművé vált, hogy a teljes lista lejön, nem a szervert használja a találatok szűkítéséhez
3. mivel az ilyen típusú adatokat általában külön fájlban szokták letölteni, ezért első tippre bekapcsoltam az XHR-re szűrést, és újratöltöttem az oldalt
4. megjelent a listában a productselector/ sor, így itt véget ért a keresgélés, nem kellett a sokkalta hosszabb JS listát végigbogarászni -
martonx
veterán
Azért egy szög beverését és egy GUI-s exe elkészítését, netán webes felületről mikrovezérlő adminisztrálását egy lapon említeni, háááát.....
Egyébként semmi gond nincs ezzel a feladattal, megvannak erre is a szakemberek. Csak nem kell állat leejteni, mikor kiderül, hogy ha egy lakást 250.000-rért festenek ki, akkor egy webes felületről mikrovezérlő admin felület kifejlesztése miért fog 2 millióba kerülni, és miért nem egy hét alatt fog elkészülni. -
Jim-Y
veterán
Fu .. Hát akkor 0 programozás tudással elég nagy fába vagtatok a fejszetek ☺️
API szerver = egy olyan program ami más programokat szolgál ki tartalommal. Legtöbbször adatbázisból olvas valamit és a kiolvasott adatot visszakuldi a bongeszoben lévő másik alkalmazasnak ami előzőleg megszolitotta a szervert. A szerver sokmindent vissza tud küldeni, oldschool esetben magát a megjelenitendo HTML oldalt, de újabb megközelítésben a szerver egy REST szerver ami bejövő kérdésekre figyel és pusztán adatot küld vissza, nem pedig HTML lapot.
REST hívás = http protokollon történő post, get, patch, put, delete request kuldese a szervernek
Nodejs = szerver oldali javascript. Szerver oldali V8 motor.
Natív API = amivel a nodejs alapból rendelkezik
Koa, restify = nodejs könyvtárak amiket más emberek irtak, webszervert lehet velük megvalositani.
Reszponziv kliens = bármilyen kijelzo mérethez idomodo webes applikacio
-
Jim-Y
veterán
Lehetséges,
a legtöbb mai mikrokontrollert lehet valami olyan szkriptnyelvvel programozni ahol tudsz csinálni egy API szervert majd a böngésződ közönséges http protokkollon keresztül kommunikálna vele. Biztos vagyok benne hogy vannak más, direkt mikrokontrollerekre optimalizált protokollok amiken keresztül távolról tudjátok vezérelni de még mindig a legegyszerűbb hagyományos REST hívások megvalósítása lenne. Mivel javascript topikban vagyunk álljon itt egy javascriptes példa.
Adott XY mikrokontroller amire fel tudsz tenni egy nodejs-t. Nodejs-ben nativ api-val, expressel, koa-val vagy csak simán egy restify-al csinálsz egy API szervert és erre csinálsz egy reszponziv böngésző/mobil kliens-t. A szerver egy JohnnyFive-al kommunikál a mikrokontrollerrel.
-
sztanozs
veterán
Semmi köze nincs ennek igazából az ajaxhoz. A hozzászólások adatbázisban vannak, és megfelelő lekérdezéssel meghatározott menyiséget kérnek le (meghatározott sorszámtól). De ez erősen adatbázismotor-függő - nem javascript. Ha megvan, milyen db motort szeretnél használni (és nagyjból megvan a az adatbázis struktúra), akkor az SQL topikban tudnak/tudunk segíteni a konkért lekérdezésben.
De egyszerűbb lenne, ha egy kész fórummotort használnál és nem akarnád megírni az egészet az elejéről (hacsak nem tanulási céllal csinálod).
-
-
fordfairlane
veterán
-
Sk8erPeter
nagyúr
Végigmész a tömb elemein, egyenként megvizsgálod őket, és ha az adott szám páros, akkor belerakod az elemet egy új tömbbe. Jobbat nem tudsz, ilyenkor muszáj végigiterálni a tömb összes elemén, különben honnan tudnád, melyik a páros?
A Jim-Y által említett módszer is pont ezt csinálja, csak ez egy rövidebben leírható módszer ugyanarra, amit írtam. (Azt nem tudom, van-e érdemi sebességbeli előny vagy hátrány a hagyományos for ciklushoz és tömbbe pakolós módszerhez képest.) -
Sk8erPeter
nagyúr
A SoundCloud lejátszója elvileg csak valóban SoundCloudról származó zenéket tud lejátszani (legalábbis a talált infók alapján).
De beírtam Google-be, hogy "jquery waveform player", és ezeket találtam:
http://www.wavesurfer.fm/
http://justwave.beotiger.com/player.html
http://codepen.io/FadedShadows/pen/crjza
Aztán biztos van még, ami említésre méltó.Van egy ilyen BBC-s oldal, ami egy kicsit komolyabb ezeknél, szerintem talán még az ilyen jellegű előfeldolgozás (itt egy C++-alkalmazás segítségével végzi el) az, ami igazán komolyan vehető (értsd: valóban "helyes" hullámokat generáló megoldás):
http://waveform.prototyping.bbc.co.uk/
(kapcsolódó cikk: http://www.bbc.co.uk/rd/blog/2013/10/audio-waveforms) -
Jim-Y
veterán
Ezt igy tombokkel nem tudod megcsinalni, de irhatsz ra egy fuggvenyt.
function take(arr, ...indices) {
return indices.reduce(function(accumulator, curr) {
var item = arr[curr];
if (item) {
accumulator.push(item);
}
return accumulator;
}, []);
}
console.log(take(['alma', 'korte', 'szilva'], 0, 2, 4).join()); "alma,szilva"Vagy jatszhatsz az ES6 destructuring args-al -> http://www.2ality.com/2015/01/es6-destructuring.html
-
martonx
veterán
Megkérdezted, hogy mi értelme a tömbnek, plusz az egész kérdés feltevésedből érződik, hogy szintaxis szinten felfogtad, hogy van ilyen, hogy tömb, de marhára nem vágod, hogy mire való. Úgyhogy nyugodtan olvass még tovább ez ügyben, illetve gyakorolj
Már a tömbökkel gyakorlgatásodon is látszik ez, mivel pont hülyeséget gyakorolsz rajtuk. Gyakorold azt, hogy egy tömbben lévő elemeket hogy rendezel sorba, vagy hogy adod őket össze, ne pedig azt, hogy minden X-edikkel akarsz csak csinálni valamit, mert ez hülyeség, nem erre valóak a tömbök.
Ezt próbáltam volna pedzegetni, nem pedig azt, amit beleláttál a hszembe. Abszolút nem vagyok nagy barátja a jquery-nek, maximálisan támogatom, ha valaki plain js-el kezd el foglalkozni, nem pedig rögtön jquery-vel. -
martonx
veterán
"Nem a cél a lényeg hanem a kérdés szerintem"
Mivel butaságot kérdeztél, ezért próbált volna sk8erpeter a dolog mélyre látni
Általában sokan vannak, akik valami jól bevált egyszerű dolgot próbálnának megoldani valami kifacsart módon. És ez nem szokott nekik összejönni, és ilyenkor jönnek a tiedhez hasonló béna kérdések. Ellenben ha azt kérdeznék meg, hogy az alap problémát hogy lehetne jól megoldani, akkor egy feles kör megspórolható lenne."De akkor mi értelme a tömbnek?"
Senki se tiltja, hogy utána olvass, hogy mi értelme egy tömbnek.Ha össze akarsz fűzni tömbből elemeket, akkor azt kb. valahogy így kell:
var result = myArray[0] + myArray[2] + myArray[4];
-
Sk8erPeter
nagyúr
-
martonx
veterán
Szia!
Kettő megoldási lehetőséged van:
1. valójában szerver oldalon futtatod a konzol alkalmazást, oda feltöltöd böngészőből a konvertálandó file-t, majd a böngészőben megadott paraméterekkel futtatod a konzol alkalmazást.
2. valami kliens oldali encodert használsz, mint pl. ez: http://bgrins.github.io/videoconverter.js/ ezt konkrétan próbáltam is, és ugyan meglepő, hogy behúzol egy 15Mbyte-os javascriptet, de attól kezdve 100% FFmpeg funkcionalitást kapsz a böngésződben, és nem kell feltöltögetni a fileokat. Az mondjuk nem árt, ha a HTML5-ös webworkerekkel tisztában vagy ennek a böszme nagy cuccnak a használatához. -
dqdb
nagyúr
For ciklusban az általad használt módon nem illik az innerHTML-hez hozzáadni tartalmat, ugyanis ilyenkor minden alkalommal a böngésző változást észlelve újrarendereli az oldalt. Egy változóba gyűjtsd össze a teljes változást, és egyszer nyúlj hozzá az innerHTML-hez. Szintén nem illik for ciklusban a DOM-ból lekérdezni állandóan egy objektumot, amikor azt a ciklus előtt cache-elhetted volna egy változóba.
function f()
{
var min = parseInt(document.getElementById("min").value);
var max = parseInt(document.getElementById("max").value);
var s = "";
var paddingLength = -max.length;
var paddingString = new Array(-paddingLength).join("0");
for (; min <= max; min++)
s += (paddingString + min).slice(paddingLength) + " | ";
document.getElementById("box").innerHTML = s;
}
Új hozzászólás Aktív témák
Hirdetés
- BESZÁMÍTÁS! ASRock B550M R7 5700X 32GB DDR4 512GB SSD RTX 3070 OC 8GB NZXT H400 fekete Enermax 750W
- ÁRCSÖKKENTÉS Lenovo ThinkPad P51s, P52s, T570, T580 eredeti Lenovo, belső akkumulátor eladó
- Csere-Beszámítás! Asus Tuf Gamer laptop! R5 3550H / GTX 1650 / 8GB DDR4 / 500GB SSD
- 1-12 részletre.Új noblechairs EPIC műbőr FEKETE - FEKETE. 2 év garancia!
- Bomba ár! Lenovo ThinkPad P50 - i7-HQ I 16GB I 256SSD I Nvidia I 15,6" FHD I Cam I W10 I Gari!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged