- Canon MILC: EOS R és M topik
- AMD Navi Radeon™ RX 9xxx sorozat
- CPU léghűtés kibeszélő
- Autóhifi
- SSD kibeszélő
- Hálózati kábelek és szerelésük
- Kormányok / autós szimulátorok topikja
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Amazon Kindle
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
-
PROHARDVER!
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
-
Teasüti
nagyúr
A
do
{ciklus mag;
i++;}
while (i<50 || másik feltétel)kódrészlet vmiért ugyanúgy végtelen ciklusba fullad, pedig nem kéne neki.
A while feltételénél nem tudok használni logikai operátorokat - and, or?
A kísérlet idejére beraktam egy számlálót is azt remélve, hogy megvéd a végtelen ciklusoktól.
De nem jött be. -
Teasüti
nagyúr
Az fura, emiatt is.
De jó észrevétel.
Ez esetben akkor... Hát persze! A substring() meg nem veszi a To paraméterben foglalt indexet. Ugye?Köszönöm!
-
Teasüti
nagyúr
válasz
Sk8erPeter #3720 üzenetére
A programozói attitűdhöz: van egy-egy ilyen ismerősöm, köztük vérbeli kocka is, aki lehúzott redőnyökkel pijamában éli a magányos életét begubózva - van egy-két furcsasága az életszemléletében szó mi szó.
Van róla minimális fogalmam, milyen értékrendet követnek a programozók.
Aztán ott vannak a mérnökinfós szaktársak is. igaz ott is elég nagy a szórás az oda nem való emberek bulizós életvitelétől a burokban élő kockákig bezáróan.
Szóval itt sem lehet beskatulyázni mindenkit, talán ez a szűkebb réteg és amúgy egészséges családi életet él a többség. Nem fair általánosítani igazad van, de az ilyen heves reakciók erre engedtek következtetni. Elnézést érte!Ontopic:
jsFiddle nem futtatja le ezt akárhogy próbálkozom, mi lehet a hiba?
Egy tömb string elemének egy karakterére próbálok hivatkozni.
Array[j][0] ami a j elem első karakterét adja vissza.
Ez egészen addig működik, amíg manuálisan írom be a karakter indexét.
De megáll működni, amint változót próbálok használni:var d = Number(this[i].length);
flash('ok\n' + this[i][d]); //debug kiíratásVagy egyszerűbben:
this[i][this[i].length]
Undefined az eredményem. Nem értem.
Ki tudnátok segíteni? Így hirtelen azt se tudom hogy induljak el Google-n. -
Teasüti
nagyúr
válasz
Sk8erPeter #3715 üzenetére
JavaScriptben programozol hozzá, ezzel kapcsolatban, meg a környezettel kérdeztem.
Fingom sincs. Csak kontárkodok benne.De hogy mitől működik... Kézikönyvben nem esik szó a környezetről.
Egy-egy Android java referencia van hozzá, de sztem azok beemelt feature-ök. Vagy talán Android javascript interface - vagy ilyesmi.Eddig minden alkalommal megköszöntem a segítséget, ennél többet nem ajánlhatok fel. Nem kötelező válaszolnod, ha úgy látod jónak. Fura amúgy ez a programozói attitűd, már ha full time programozó vagy. Mindig olyan nagyra vannak az idejükkel - persze vhol jogosan, hisz ebből élnek. És elefántot csinálnak a bolhából, a konvenciókból.
De mindegy, itt én vagyok a vendég. A válaszod célt ért, ezt külön megköszönöm még egyszer. Nem érzem szükségességét tételesen reagálni rá. Az egy befejezett téma részemről.
Nem is értem miért van szükség magyarázkodásra.Amúgy tisztában vagyok a fórumos segítségnyújtás fogalmával, egy egész topikot én vezetek.
Most hozakodjak elő én is a magánéletemmel?Jah, amúgy nem. Nem programoztam ezelőtt egy nyelven sem. Középiskolás Pascal nyilván szánalmas példa lenne, ezért az nem is számít.
-
Teasüti
nagyúr
válasz
Sk8erPeter #3712 üzenetére
Én is erre jutottam.
Arra... nem akarok válaszolni. Fáradt voltam hozzá akkor, és most is.
Levontam belőle a tanulságot azért, köszi!
Tasker milyen program? Írtam róla egy cikket. De röviden szólva éppen ezt tudja, amit te is írtál.És ha nem jsFiddle-szerű helyeken szokás dolgozni, akkor hol?
Ti ajánlottátok nekem, hogy erre való...
Amúgy tetszik, elégedett vagyok vele. Mindig Karma lapjait szerkesztem, ahol elő van készítve a pálya.Tud indentálni, meg validálni is. Kell nekem ennél több?
-
Teasüti
nagyúr
jsFiddle-n belefutottam egy végtelen ciklusba. A böngészőm bezárta az ablakot. Azóta újra se tudom tölteni azt a linket. Mivel nem vagyok regisztrálva az oldalon, ezért gondolom minden munkám elveszett, ugye?
-
Teasüti
nagyúr
Sziasztok!
Megint én.XMLHttpRequest használatával egy HTML weblap letöltésének és parse feldolgozásának mi a módja plain JS kódban?
Ez alapján próbáltam elindulni, de a .title property-nél már hibát dob. Vmint a "this"-t se értem, hogy az mi akar itt lenni.
-
Teasüti
nagyúr
válasz
Sk8erPeter #3705 üzenetére
Amúgy meglehetősen gány, amit csinálsz, ez az összefűzögetős valami (annyira nem próbáltam meg értelmezni). Nem tudom, most hány elemmel kísérletezel, de amikor mondjuk lesz 1000 név a telefonkönyvben, amiből szűrni kell az általad mutatott módon, akkor nem biztos, hogy azonnal végezni fog vele például egy gyengébb procival rendelkező teló...
Feladat:
kellenek egy tömb - nem nulla - elemeinek indexei, de az elemek (számok) csökkenő sorrendjében.
Vagyis ki kell gyűjteni nem csak a legnagyobb elem indexét (haha rém egyszerű lenne egy közönséges Array.indexOf(Math.max()) függvénnyel, de az indexOf() megáll az első találatnál, szóval nem jó - kellenek a lehetséges alternatívák), hanem sorban az összeset.
Hogy fognál hozzá? -
Teasüti
nagyúr
válasz
Sk8erPeter #3705 üzenetére
Ha a Prohardveren beszúrsz egy kódot, akkor jelöld ki, és kattints a "Programkód" gombra, ne pedig simán a Monospace-re. Akkor megmarad indentálva.
Nem irónia, tényleg így néz ki a kód.Őőő, megvan, mi az a "result" szó, mit is jelent? Ne oda akarj írni, hanem pl. a HTML-, JS- vagy CSS-panelra...
[link] Itt is a result panelen van az eredmény.
Ezt így ahogy van másoltam a HTML kóddal együtt, de nekem nem működött a pre.innerHTML sor (ugye az küldi a result-ra a kimenetet?).Milyen natív környezetről beszélsz?
A telefont, ami végső soron a program fog futni.Amúgy nem értem, ez a zárójelezős téma hogy jött ide.
A fenti kód olvashatósága... az indentálás kapcsán.
Hogy én még nem zavarodtam bele.
Gondolom legalábbis, hogy ez miatt nehéz olvasni.Nem tudom, most hány elemmel kísérletezel, de amikor mondjuk lesz 1000 név a telefonkönyvben, amiből szűrni kell az általad mutatott módon, akkor nem biztos, hogy azonnal végezni fog vele például egy gyengébb procival rendelkező teló...
Igaz nálam csak olyan ~50 név lehet, de a telefonom elég gyenge, vagy 4 éves modell.
Nem hinném, hogy a mai 1+ ghz-es telefonoknak ez gondot okozhatna.Az utolsóra:
function akármi(izé) {
var "ez meg az";
return("ez meg az");
}
var "ez meg az" = function(izé);Na ez így jó vagy rossz?
Asszem ugyanez érvényes az Array.prototype-ra is, azt is a program elejébe illesztem be és nem tudom a benne hazsnált változók össze akadhatnak-e a program többi változójával.
Értsd: a function()-ben lévő változók "lokálisabbak-e", mint a programban lévők?
De mindjárt olvasom a linkeket... -
Teasüti
nagyúr
Nem, nem "indentálok".
Én olyan kemény vagyok, hogy még mindig a telefonon pötyögöm be a kódot, amin a szerkesztő nem tud tördelni.
Néztem a jsFiddle-t, de nem tudom használni (próbáltam átírni te példáidat is, de a result panelra nem tudok írni... más debug kiíratás sem ment.). Próbáltam a böngésző konzolját is, de az se túl felhasználóbarát.Inkább marad a natív környezet. Eddig még nem szúrtam el a zárójelezést egyszer sem.
Lássuk csak... Úgy működik, hogy először kigyűjti az "a" tömbbe az összes nullánál nagyobb számot és a "b" tömbben tárolja az előfordulások számát.
Majd lemásolja az input-ot, hogy az érintetlen maradjon és az "a" tömb hossza szerinti ciklusban meghívja a "b" előfordulások száma szerinti másik ciklust és a ciklusmagban meg megkeresi a kigyűjtött elemek indexeit az input-ból és berakja a "c" tömbbe. Mivel itt a Math.max függvényt használom masszívan, ezért jónak láttam nullázni az aktuális mentett elemet, hogy a következő előfordulást találhassa meg a függvény.
A "c" tömböt a beágyazott ciklus lefutása után minden menetben üríti az output string-be.Kb ennyi.
Biztos hatékonyabban is meg lehet oldani, meg kevesebb erőforrással, de nem vagyok programozó, meg amúgy is egy szempillantás alatt végez még a telefon is.Kérdés:
a meghívott function()-ökben deklarált változók ugye elszeparáltak a programtól?
Tehát a function()-ön belüli "var i=0" nem fog összeakadni abban a programban lévő változattal, amiben meghívtam a függvényt? (Abban a programban definiáltam a function()-t is.) -
Teasüti
nagyúr
válasz
Teasüti #3701 üzenetére
Jah és ez az egész macera azért, mert az Array.indexOf() csak az első elemet dobja vissza, és nincs egy jó kereső metódus a natív Array() objektumban, így csináltam egyet magamnak.
(Gondolom ha majd vmikor elkezdtem használni vmelyik könyvtárat, akkor a homlokomhoz fogok csapni előbb-utóbb...) -
Teasüti
nagyúr
Ezt hoztam össze:
Array.prototype.indexesOfGreatestNums = function () {
var result = new String, a = new Array, b = new Array; c = new Array;
a[0] = 0, b[0] = 0;
for (var i =0, j=0; i<this.length;i++) {
if (this[i]>0) {
if (a.indexOf(this[i].toString())>=0) {if (b[a.indexOf(this[i].toString())] !== undefined) {b[a.indexOf(this[i].toString())]++} else {b[a.indexOf(this[i].toString())]=1;};} else {
a[j] = this[i];
if (b[j] !== undefined) {b[j]++} else {b[j] = 1};
j++;
}; //end else
}; // end if
}; // end for
//var ok = popup('',a + '\n' + b,false,'','',30);
var that = this.slice(0);
for (i=0;i<a.length;i++) {
for (j=0;j<b[a.indexOf(Math.max.apply('',a).toString())];j++) {
//flash(that.join() +'\n'+ a.join());
c[j] = that.indexOf(Math.max.apply('',a).toString());
that[that.indexOf(Math.max.apply('',a).toString())] = 0;
}; //end for
result = result + c.join() + '>';
c = [];
a[a.indexOf(Math.max.apply('',a).toString())] = 0;
}; // end for
return(result);
}; // end prototypeAzt tudja, hogy egy számokból álló tömbből egy string-ben visszaadja az elemek értékei alapján csökkenő sorrendben az indexüket.
Azonos értékek indexei vesszővel elválasztva, különbözőké pedig ">" jellel. NaN elemekre nem érzékeny, ha meg az egész tömb csak nullákból áll, akkor meg csak egy ">" jelet ad vissza.Pl:
var a = [0,0,1,1,5,12,5,0,0];
var b = a.indexesOfGreatestNums();
b = "5>4,6>2,3>"Ezzel szeretném kiértékelni majd a telefonkönyves regex keresés eredményét, ahol a találatok számát mentem a fenti "a" tömbbe, amiben az indexek megegyeznek a névjegyzék tömbjével.
-
Teasüti
nagyúr
Technikai segítség!!
Hogy tudnék egy tömb adott sorszámú eleméhez hozzáadni egyet, ha még nincs deklarálva az adott elem?
Csak számokkal dolgozok itt:var a = new Array;
for (var i=0, j=0;i<this.length;i++) {
if (this[i]>0) {a[j]++; j++};
};Az értelme most nem érdekes, csak egy péda.
Az az érdekes, hogy az undefined elemekhez nem tudok hozzáadni egyet, viszont nem definiálhatom le előre, mert nem tudom mekkora lesz a tömb.
Undefined helyett arra lenne szükségem, hogy alapértelmezésben nulla legyen minden újabb elem az "a" tömbben.
Vagy legalábbis tudjam növelni az értékét (nem jó az a[j]=1; ).szerk:
hmm, ha jól sejtem, akkor nem úszom meg az elemek előzetes vizsgálata nélkül:if (a[j] == 'undefined') {a.push(1)} else {a[j]++};
-
Teasüti
nagyúr
Technikai segítség!!
Hogy tudnék egy tömb adott sorszámú eleméhez hozzáadni egyet, ha még nincs deklarálva az adott elem?
Csak számokkal dolgozok itt:var a = new Array;
for (var i=0, j=0;i<this.length;i++) {
if (this[i]>0) {a[j]++; j++};
};Az értelme most nem érdekes, csak egy péda.
Az az érdekes, hogy az undefined elemekhez nem tudok hozzáadni egyet, viszont nem definiálhatom le előre, mert nem tudom mekkora lesz a tömb.
Undefined helyett arra lenne szükségem, hogy alapértelmezésben nulla legyen minden újabb elem az "a" tömbben.
Vagy legalábbis tudjam növelni az értékét (nem jó az a[j]=1; ). -
Teasüti
nagyúr
Őőő algoritmus írásban is kérhetek segítséget?
Egy string tömböt szeretnék keresni egy másik string tömbben és azokat a találatokat kidobatni, amire a legtöbb az egyezés.
Az input egy karakterlánc, amiben vhol van egy név, de lehetnek nem releváns szavak is (Speech-to-Text és telefonkönyv keresés). Az inputot feldarabolom szavakra, majd ezeket a szavakat egyenként lefuttatom regex kereséssel a névjegyzéken (amit szintén egy tömbben helyeztem el, egy rekord egy teljes név).
És a találati arányból kellene kidobni a legvalószínűbb egyezést.
Tehát mondjuk az input vmi ilyesmi: "Hívd fel Gipsz Jakabot!"
A ragozásra is kitaláltam egy alprogramot, ami az utolsó karaktereket vagdossa le - magánhangzó esetén először az ékezetet -, majd újra az egész.
És eredményül a "Gipsz Jakab" rekordot szeretném kapni, mert az input 4 kifejezéséből 50%-os találatom van erre a rekordra (míg mondjuk a "Agyag Jakab" esetén csak 25%-os az egyezés).A kódolás talán menni fog (bár még nem állt össze miként fogok ezen végigmenni, vmi iteratív módszeren töprengek), de a kérdésem az lenne, hogy ez így életképes megoldásnak tűnik?
Illetve ami nekem nagy kérdőjel az a statisztika felállítása. Hogy tudnám kiértékelni a keresések eredményét?
Mert nagyon könnyen előfordulhat, hogy több találatom is lesz és ezekből automatikusan a legvalószínűbbet kellene választani. -
Teasüti
nagyúr
válasz
Sk8erPeter #3694 üzenetére
Hát jah, RSS vagy webservice API nekem egyre megy az én szintemen.
A lényeg, hogy kicsi kompakt és könnyen feldolgozható adatot kell csak letölteni. -
Teasüti
nagyúr
válasz
Sk8erPeter #3692 üzenetére
Már megtértem a JSON-t illetően.
Google API-kon kívül még nem találkoztam ezzel a formátummal.
Most épp az időjárás rss szolgáltatással bíró oldalak keresgélése van terítéken, de hírből sem találkoztam még JSON-nal ezen a területen. -
Teasüti
nagyúr
Akkor amire eddig rájöttem:
- a Date() objektum a helyi időt adja vissza, viszont a Date().getTime() már figyelmen kívül hagyja az offset-et és UTC időt ad,
- a new Date(időbélyeg) ha jól értem, akkor a megadott időre készíti az objektumot,de hozzá kalkulálja a helyi eltérést,
Ezekből a következtetésem, hogy a helyes eljárás a következő:
- a webservice UTC Unix időbélyeget kér és a new Date().getTime()-ot fogom átadni neki (osztva ezerrel),
- a válaszból kinyert offset adott településre vonatkozóan (London, Anglia) pedig úgy lesz helyesen megjelenítve, ha a válasszal korrigált időbélyeghez még hozzáveszem a getTimezoneOffset() értékét és berakom egy new Date() objektumba - mivel a Date() a helyi időzóna szerint eltolja a megjelenített időt.
Így remélhetőleg tényleg azt számolom, amit szeretnék. -
Teasüti
nagyúr
Azt hiszem az eredmény olvasható formába alakításával lesznek problémák.
Időbélyeget nem a Date(időbélyeg) paranccsal lehet visszaalakítani olvasható formába?
Mert UTC időbélyeg ide-vagy oda, nekem már a helyi időzónában jeleníti meg.
W3Schhool editoron is a helyi időzónában mutatja a Date() parancs attól függetlenül, hogy adtam-e neki paramétert, vagy sem.Akkor viszont nem tudom értelmezni miről akar magyarázni ez az oldal az elején a négy módról.
És akkor azt sem értem a fenti kódsor miért adja vissza a helyes eredményt mégis, ha a time változó végső értéke egy új Date() objektum lesz, ami meg ezek szerint a helyi aktuális időt adja. -
Teasüti
nagyúr
válasz
Teasüti #3688 üzenetére
Összehasonlítottam magam is a Tasker JS getTime() metódust ezzel, és tényleg UTC eredményt ad.
Legalábbis e szerint.
Na most akkor hol a hiba?
A London, Anglia példában a magyar időhöz képest mégse kaptam jó eredményt önmagában a Date().getTime() paranccsal.
Jelenleg meg ugye -7200 másodperc a request előtt, majd +3600 a válasz után és így adja vissza a helyes 11:50-et (ha itthon 12:50 van). -
Teasüti
nagyúr
getTimezoneOffset() a "The difference, in minutes, between UTC and local time."
Vagyis GMT+2 zónában -120 eredményt ad, amit szintén összeadással korrigálom a getTime()-ot.Ezt a kódot futtatom, ami ebben a formában jó eredményt ad:
var localtime = Math.floor(new Date().getTime() / 1000);
var localoffset = new Date().getTimezoneOffset() * 60;
time = localtime + localoffset;
//flashLong(time + ' = ' + localtime + localoffset);
var http =new XMLHttpRequest();
http.onreadystatechange = function () {
if (http.readyState==4) {
var json = JSON.parse(http.responseText);
var offset = (json.dstOffset + json.rawOffset);
time = time + offset;
time = new Date(time*1000); //sec to millisec
say(city + ' területén a ' + json.timeZoneName + ' szerint jelenleg ' + time.getHours() + ' óra ' + time.getMinutes()+ ' perc van.','com.svox.classic','hun-HUN','media',5,5); //Adott város területén a valamilyen időzóna szerint xx óra yy perc van. -
Teasüti
nagyúr
válasz
Teasüti #3684 üzenetére
Nem csak W3School referenciája hibás ezek szerint. Itt sincs szó UTC-ről a getTime() esetében.
-
Teasüti
nagyúr
Satckoverflow-on is mindenki ezt hajtogatja, de én sem így tapasztaltam.
Ha Match.floor(new Date().getTime() /1000) paranccsal készítek időbélyeget (Ugye Magyarország jeleleg GMT+2) a Google Timezone API-hoz (London, Anglia a kérdés - ami ugye GMT+1 a DST miatt), akkor a válaszban kapott offset-eket hozzáadva az elküldött időbélyeghez egy órával a helyi időnél többet kapok.
És jól kezeltem az offset-eket, Google dokumentáció szerint csak egyszerűen össze kell adni mindent.Viszont ha a getTime()-ból kapott bélyeget korrigálom a getTimezoneOffset()-el, akkor kapok helyes választ.
Forrás.
Illetve W3School-on a Date() referenciában sincs feltüntetve a getTime() metódusnál az UTC.Amúgy tényleg qrva jó ez a JSON, két egyszerű mondattal elintéztem azt (amiből az egyik a parse), amit XML-nél úgy kellett összeollózni több parancsból.
-
Teasüti
nagyúr
válasz
Speeedfire #3677 üzenetére
Nem próbálkoztam meg újra begépelni az UTC() metódust másodpercekig terjedően, így most a getTimezoneOffset()-et használom, amit hozzáadok a helyi időhöz.
Nem tudom mennyire bolondbiztos, illetve működik-e a világ bármely pontján (jobban mondva a telefon miként követi az időzónákat), de egyelőre megteszi.
Köszi a választ! -
Teasüti
nagyúr
Hogy tudnék összerakni ezekből egy UTC időbélyeget másodpercekben?
new Date().getTime() //a helyi időt adja vissza;
Date.UTC() //ezt meg fel kell tölteni adatokkal, de fogalmam sincs, hogy vajon a helyi időt adjam át neki? Próbáltam a getUTCxxx elemekkel - elég sokáig tartott bepötyögni -, de NaN-t kaptam csak. -
Teasüti
nagyúr
Elég kevés a JSON, jellemzően eddig csak Google API-k esetén találkoztam vele.
XML-t népszerűbbnek találom azok kevés webservice közt, amikhez szerencsém volt eddig.Nem egészen értem hogy kellene összefűznöm több getElementsByTagName hívást.
Ezzel csak gyerekek nélküli tag-et tudok lekérni, amint képbe került egy-egy alsóbb szint, úgy a hívás már nem működik még a 0 sorszámokkal sem a tömbben.Fiddle: csalás, itt te már jQuery-t használsz, ha jól sejtem!
Egyelőre még hanyagolom a library-k használatát, azon egyszerű okból, hogy a natív JS kóddal se barátkoztam még meg igazán. Meg a jQuery is egy tekintélyes tananyag W3School-on JS után, szóval nem is látom még a fától az erdőt.
De köszi az oldalt, remélem pont azt tudja, mint a Tasker környezet!Meg az XML kezelését is el szeretném sajátítani, tekintve, hogy azok vannak többségben.
...talán vmi programozói attitűd maradványa, hogy először a nehezebb úton akarok menni, mielőtt megismerem a módját hogy lehet egy huszárvágással elintézni ugyanazt. -
Teasüti
nagyúr
XML getElements-ben kérnék megint segítséget.
W3School példák (bookstore) alapján azt hittem az xmlDoc.getElementsByTagName('név')[0].childNodes[0].nodeValue paranccsal megkaphatom az értékét adott sorszámú izé, node-nak.
Úgy értelmeztem, hogy a childNode[0].nodeValue, ami ha a Tag csak egy karakterláncból áll, akkor visszaadja, ami a <tag></tag> között van. És childNodes[1].nodeValue esetén már azt adja vissza, ami itt van: <tag><első elem></első elem></tag>. (Majd a childNodes[3] adja vissza a második elemet, stb. Illetve úgy értelmeztem, hogy a childNodes[2] meg az első elem utáni - és így tovább - karakterláncot adná vissza tag-estül mindenestül.)De undefined az eredményem.
Szóval a primitív tag-eket le tudom kérni, de hogy kell hivatkozni a struktúrált adatokra, mint az alábbi példában?
<location>
<lat>szélességi fok</lat>
<lng>hosszúsági fok</lng>
</location>
Itt a "location" tag-re szeretnék hivatkozni, mert az az egyedi, lat és lng többször is előfordul a táblázatban.Így próbáltam először:
var loc = xmlDoc.getElementsByTagName('location')[0].childNodes[1].nodevalue + ',' + xmlDoc.getElementsByTagName('Location')[0].childNodes[3].nodeValue
Persze sikertelenül. Egyesével se ad vissza semmit semmilyen childNode sorszámmal.
-
Teasüti
nagyúr
válasz
martonx #3662 üzenetére
Ez esetben technikailag akkor nem változót hozok létre?
Pl. xmlDoc előtt még egy példában sem láttam var utasítást.
Bár elé rakva így is működik.Eddig úgy csináltam a letöltést, hogy:
function get(url) {
var http = new XMLHttpRequest();
http.open("GET",url,false);
http.send();
return(http.responseXML);
}Majd
kódsor, blahblahbla...
var data = get(url); //http.open(false) esetén gyakorlatilag megvárja a JS a választ, mielőtt tovább haladna a sorban.
//XML parse
egyéb kódok, blah blah...
data = get(másik url);
és így tovább, blahblahblah...Szóval ez így közel sem ideális?
Tudom nem kezeli a sikeres letöltésen kívül egyik másik esetet sem jelenleg.
De ezt tényleg csak úgy tudom elérni, hogy az onreadystatechange = function() {ide bezsúfolom a program teljes hátralévő részét?? :F }Vagy esetleg csak ami a response kezeléséhez kell, aztán kiugrok a send() mögé?
-
Teasüti
nagyúr
válasz
Teasüti #3659 üzenetére
Bár referenciát még nem találtam a node-ok szerepére a fenti sorban, esetleges alternatívákra.
Nem aktuális. -
Teasüti
nagyúr
válasz
Sk8erPeter #3658 üzenetére
Arra mi a bevett gyakorlat, ha nem akarom beágyazni a request utáni kódot az onreadystatechange függvénybe, hanem szisztematikusan szeretnék haladni tovább a sorban? (Több egymás utáni lekérésem van, amit nekem elég bonyolult lenne egymásba ágyazni a fenti módon.)
-
Teasüti
nagyúr
Köszönöm, kicsit döcögősen, de az XML-ből már ki tudok nyerni adatot a .getElementsByTagName().childNodes[0].nodeValue paranccsal. JSON-nal még nem volt időm foglalkozni. Bár referenciát még nem találtam a node-ok szerepére a fenti sorban, esetleges alternatívákra.
Ami még zavaros nekem, azok a deklarációknál lévő new kifejezések.
Erről kaphatnék egy kis magyarázatot?
Pl. var x = new String.
Vagy xhttp = new XMLHttpRequest().
Vagy reg = new RegExp() (amit eddig csak egyszerűen karakterláncként hoztam létre két "/" között). -
Teasüti
nagyúr
És JSON formátumot is fel tudok dolgozni XML objektumként?
Menet közben kiviláglott a JSON mint olyan Javascript rokonsága, de megzavart, hogy én itt XMLHttp-vel dolgozom.
W3School-on tanultam, amit eddig tudok, de úgy találtam erről vajmi keveset ír, vagy csak nincs jól összeszedve.
Még mindig nem tudom hogy álljak neki. -
Teasüti
nagyúr
Köszönöm a sok segítséget!
Itt egy újabb, amivel megkönnyíthetnéd az életem:
Ha már működésre tudtam bírni az XML http reguest funkciót, akkor van arra vmi eljárás, hogy kell könnyedén kezelni az XML táblázatot?
Egy string-be töltöm le az adatokat (responseText) és jelenleg a split() függvénnyel vagdosom ki belőle a nyers információkat.
Létezik ennél elegánsabb és könnyebb módszer? (Gondolom igen)
Jobban mondva mi lenne az? (Gondolom responseXML formában kéne letölteni és ez vmi DOM objektum lesz, amiben közvetlenül elérem az infókat paraméteres formában talán?) -
Teasüti
nagyúr
válasz
Sk8erPeter #3650 üzenetére
Paraméterezésnél vannak olyan beépített funkcióim Android-on, hogy mondjuk egy alkalmazás indítása, ami így néz ki:
loadApp(str label,str data,boolean)
Ilyen esetben, ha nem akarok semmilyen adatot átadni az alkalmazásnak, jobban mondva, hogy egy köztes paramétert nem akarok definiálni egy függvényeben, akkor itt mi a teendő szintaktikailag?
Eddig így csináltam: loadApp('Viber','',false) ahol egy üres string-et írtam a középső paraméterbe.
Próbáltam e módon is: loadApp('Viber',false) de ez nem működött. Úgy tűnik nem lehet csak úgy kihagyni egy köztes paramétert.A protokoll nagy ötlet volt!! Most működik a letöltés!!!
Ezer köszönet, egy hete szenvedek vele és sehol nem került említésre sem, még az Android-os fórumokon is protokoll nélküli url címek szerepeltek a példákban!! -
Teasüti
nagyúr
válasz
Sk8erPeter #3648 üzenetére
Igen ez már feltűnt, viszont egyáltalán semmilyen válaszom nincs.
Fel se megy a telefon a netre.Lekértem a ready state-et is menet közben e módon:
http.onreadystatechange = function() {flash(http.readyState}
El is számol 1-től 4-ig, de a 3 az kimarad.
És üres a responseText.
Bármilyen linket adok meg egyiket sem tölti le, mindig üres marad az adat.Már arra is rájöttem, hogy return csak akkor kell, ha function() szerepében hívom meg a kódot, amúgy meg egyszerűen flash(http.responseText) kódot használtam.
A flash() itt egy Android Toast üzenetet jelenít meg; olyasmi, mint az alert().MÁS:
Mi a helyzet akkor, ha kevesebb paramétert akarok átadni egy függvénynek, mint amennyi definiálva van?
Pl:
function hello(text1,text2)
{ blahblahblah }
hello(text1);
Ilyen esetben kötelező mindkét paramétert átadni?
Ezt nem csak a saját készítésű függvényekre értem, hanem a JavaScript-ben általában.
Nem találtam erre vonatkozó infót egyik tutorial-ban sem, hogy kötelező-e teljesen paraméterezni. -
Teasüti
nagyúr
Sziasztok!
Szükségem lenne némi segítségre hogy tudnék működésre bírni egy http get parancsot.
Használ itt vki Tasker-t btw?
Android-on próbálom futtatni a kódot, de csak Toast üzenetben kommunikál velem a fordító, és nem vmi informatív.Eddig erre jutottam, de csak "OK." Toast üzenet a jutalmam és legalább nem történik semmi:
var loc = [egy gps koordináta];
var http = new XMLHttpRequest ();
http.open("GET","maps.googleapis.com/maps/api/geocode/xml?latlng=loc&sensor=true", false);
send();
return(http.responseText);Majd az ezután következő sorok már le se futnak.
Idézőjeleket próbáltam aposztróffal is, úgy se jobb.
Ha jól sejtem, akkor a "http" változóban kéne visszakapnom szövegként a letöltött adatokat.
Akinek ez ismerős, kérem segítsen!
Jah amúgy épp csak ismerkedek a JS-el, semmi tapasztalatom nincs benne és informatikus se vagyok.
Köszönöm!
Új hozzászólás Aktív témák
Hirdetés
- HP Spectre x360 Érintős Hajtogatós Laptop Tab 16" -60% i7-1360P 32/2TB Intel Arc A370M 4GB UHD OLED
- Szép! Lenovo Thinkpad T14s G2 Üzleti "Golyóálló" Laptop 14" -60% i5-1135G7 4Mag 16GB /512GB FHD IPS
- Samsung Q80T 55" QLED - 4K 120Hz VRR / FreeSync / HDMI 2.1
- ÚJ HP ENVY 17 Nagyképernyős "Kis Gamer" Laptop -45% 17,3" Brutál i7-13700H 16/1TB Iris Xe FHD IPS
- Legion Go 8APU1
- Samsung Galaxy Xcover 5 64GB, Kártyafüggetlen, 1 Év Garanciával
- HP ProoBook 430 G5 laptop (Kijelző törött)
- Samsung Galaxy S21 Ultra , 12GB , 128 GB , Kártyafüggetlen
- Bomba ár! Dell Latitude E5450 - i5-5GEN I 8GB I 500GB I 14"FHD I HDMI I Cam I W10 I Gari!
- 30+ típus!!! Lenovo Thinkpad X1 Carbon, Thinkbook, 2-in-1 Workstation, Yoga, 5-14.gen. Ultra 7!!!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest