Autor | Zpráva | ||
---|---|---|---|
xiaoming Profil |
#1 · Zasláno: 20. 8. 2015, 01:34:57
Mam nasledujici kod a chtel bych ukladat hodnotu do promenne s. Jak na to?
var s = 0; setInterval(function(){ s = check(dat, u, p); }); }, interval); function check(dat, u, p) { urlcheck = u + p; $.ajax({ type: 'GET', url: urlcheck, dataType: 'text', mimeType: 'text/plain', cache: false, success: function(data) { data = parseInt(data.replace("\r", "").replace("\n", "")); if(data > dat) { if( s==0 ) s = Date.now(); } } }); if(Date.now() - s > 10e3) alert('10s'); return s; } |
||
Chamurappi Profil |
#2 · Zasláno: 20. 8. 2015, 09:18:15
Reaguji na xiaominga:
To první áčko ve zkratce AJAX znamená asynchronní. Na řádku 23 pracuješ s hodnotou s , která se ještě nezměnila, řádek 19 neproběhl. Cokoliv, co potřebuješ změnit v reakci na odpověď serveru, musíš dělat v callbacku vyvolaném odpovědí serveru.
Krom toho nemá moc smysl vracet hodnotu s (řádek 24) a ukládat ji do toho samého s (řádek 3).
A Date.now mimochodem nefunguje ve starších prohlížečích, používej +new Date() .
|
||
Časová prodleva: 9 let
|
0