| 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: 11 let
|
|||
0