Autor | Zpráva | ||
---|---|---|---|
hunter_dave Profil |
Zdravím,
mám problém s jQuery funkcí get. Jde o to, že pokud načtu obsah souboru do proměné tak ne vždy mi to vrátí co má. Podle mě jde o to, že data se nestačí do proměnné "result" načíst a zobrazí se buť stará data z této proměnné nebo nic. mám tenhle kód: sobor whisperer.php vrací podle toho co zadá uživatel do pole (text) seznam měst <script type="text/javascript"> jQuery.get("/layout/plugins/whisperer/whisperer.php?search="+text, function(response){result = response;}); // řeším to tak, že dám tomu načtení chvíli čas - 1 sekundu, ale u pomalejšího připojení s větší databází (několik tisíc měst) to prostě nejde setTimeout("fillwhisperer(result)", 1000); </script> |
||
_es Profil |
hunter_dave:
Prečo nezavoláš funkciu fillwhisperer vo funkcii predanej ako druhý argument funkcii jQuery.get ? Či ešte jednoduchšie jQuery.get(..., fillwhisperer); ? Premennú text máš definovanú kde? Ale celý ten tvoj kód akosi nemá zmysel - „podle toho co zadá uživatel do pole (text)“ - to by malo reagovať na nejakú udalosť toho políčka a nie to byť hentak.
|
||
hunter_dave Profil |
#3 · Zasláno: 17. 4. 2013, 19:36:00
je to jenom kus kódu nechtěl sem to sem dávat celý. v proměnné text je hodnota inputu a funkce se vola udalostmi onkeyup a onfocus .. Takže to, že použiju funkci fillwhisperer jako druhý argument v jquery mi pomůže? počká to?
|
||
Chamurappi Profil |
#4 · Zasláno: 17. 4. 2013, 19:43:23
Reaguji na huntera_dave:
Co to znamená počká? Nepočká, ta funkce se prostě zavolá, když přijde odpověď (a jestli přijde). Proto se tam přeci dává. Je to normální událost. |
||
_es Profil |
#5 · Zasláno: 17. 4. 2013, 19:45:47
hunter_dave:
V oficiálnej dokumentácii jQuery to máš všetko vysvetlené: api.jquery.com/jQuery.get |
||
hunter_dave Profil |
Chamurappi:
Stává se mi, že když něco napíšu tak to nic nevrátí a když napíšu něco dalšího, tak to vrátí to co by to mělo vrátit na to co jsem napsal předtím. Nevím jestli je to srozumitelný, ale prostě se to chová jinak než by mělo, jakoby se spožděním. A tomu dám třeba tu jednu vteřinu tak to vrátí to co má (když počkám), ale zase ne vždycky, proto se ptám jestli se dá nějak ověřit jestli už to něco vrátilo. _es: Té dokumentaci nějak nerozumím, neměl bys odkaz na nějaký příklad? |
||
_es Profil |
#7 · Zasláno: 17. 4. 2013, 19:55:58
hunter_dave:
„jakoby se spožděním.“ No ale serveru predsa nejaký čas trvá, než prijme dotaz a pošle odpoveď a aj než odpoveď príde do prehliadača. |
||
hunter_dave Profil |
_es:
No a o tom právě mluvím, potřeboval bych vědět jak nějak počkat na odpověď, ale nevím jak. Tak vyřešeno, stačilo jak říkal _es jen jako druhý parametr uvést fci fillwhisperer, předtím mi to nefungovalo, ale pak jsem vyzkoušel tenhle zápis, tedy vytvořit funkci a tou funkcí teprve zavolat fillwhisperer a funguje to bez problémů, díky moc za pomoc <script type="text/javascript"> jQuery.get("/layout/plugins/whisperer/whisperer.php?search="+text, function(response){fillwhisperer(response);}); </script> <script type="text/javascript"> jQuery.get("/layout/plugins/whisperer/whisperer.php?search="+text, fillwhisperer(response)); |
||
_es Profil |
hunter_dave:
„Nevím proč nefungovalo:“ Lebo tam má byť funkcia, nie jej návratová hodnota: Časté potíže, zajímavosti a poučné debaty » Rozdíl mezi voláním funkce a funkcí. Teda by malo fungovať: jQuery.get("/layout/plugins/whisperer/whisperer.php?search="+text, fillwhisperer);
|
||
hunter_dave Profil |
_es:
Díky moc za objasnění. :) |
||
Časová prodleva: 11 let
|
0