[ borovac @ 20.05.2007. 21:20 ] @
Da li je moguce napraviti delay funkciju bez da se koristi setTimeout ili while loop koji previse koristi cpu?
u firefoxu setTimeout se pozove a exekucija se nastavi odmah, dok u ie ceka da odradi setTimeout pa onda dalje, to mi je problem jer mi treba bas da pauzira execution.
[ Aleksandar Ružičić @ 20.05.2007. 22:09 ] @
pokusaj sa setInterval
razlika izmedju setTimeout i setInterval je sto sa timeoutom samo jednom pozivas funkciju (ili izvrsavas kod) dok se sa intervalom kod izvrsava (funkcija poziva) sve dok ne pozoves clearInterval.
[ borovac @ 20.05.2007. 22:24 ] @
setTimeout("a()", 500) ili setInterval("a()", 500)
alert(1);
function a(){
alert('a');
}

u firefoxu ce prije nego sto pozove a() sa setTimeout pokrenuti alert(1), tj nece zaustaviti daljnju exekuciju, dok u ie tako nec tj u ie se moze koristit kao pause ili delay. Problem je sto zovem funkciju koja sama sebe rekurzivno poziva preko setTimeout, dok ne dodje do neke granice koju ja zadam, a zatim da se nastavi izvrsavanje koda funckije iz koje sam pozvao onu rekuzrivnu. Mejdutim firefox ne ceka da se rekurzivna zavrsi, nego je damo pozovo a paralelno nastavi glavnu funkciju izvrsavati.
[ borovac @ 21.05.2007. 01:04 ] @
ie javlja not implemented kada se koristi setTimeout funkcija na linuju iza, mozda nisu implementirali da se nastavi exekucija...
[ bzero @ 21.05.2007. 08:08 ] @
Citat:
setTimeout("a()", 500)
alert(1);
function a(){
alert('a');
}

u firefoxu ce prije nego sto pozove a() sa setTimeout pokrenuti alert(1), tj nece zaustaviti daljnju exekuciju, dok u ie tako nec tj u ie se moze koristit kao pause ili delay.


Ne znam kako si ovo zakljucio, ali nije to tacno, gornji kod radi isto u svakom browseru, tj prvo dobijes alert(1), a onda alert(a).


Citat:
Problem je sto zovem funkciju koja sama sebe rekurzivno poziva preko setTimeout, dok ne dodje do neke granice koju ja zadam, a zatim da se nastavi izvrsavanje koda funckije iz koje sam pozvao onu rekuzrivnu. Mejdutim firefox ne ceka da se rekurzivna zavrsi, nego je damo pozovo a paralelno nastavi glavnu funkciju izvrsavati.


Mozda da kod koji ide iza setTimeout, stavis u posebnu funkciju, koju ces pokrenuti kada dodjes do tog limita, iz funkcije pozvane sa setTimeout.
[ borovac @ 21.05.2007. 17:09 ] @
Citat:
Ne znam kako si ovo zakljucio, ali nije to tacno, gornji kod radi isto u svakom browseru, tj prvo dobijes alert(1), a onda alert(a).

u pravu si. ne znam ni sam kako sam ono zakljucio...