ďťż

[JS] setInterval i setTimeout porażka programowania obiektowego?

       

Podstrony


telcocafe

Powyższe funkcje są chyba znane każdemu:

setInterval - wykonuje cyklicznie określony kod co X milisekund
setTimeout - wykonuje określony kod tylko raz z opóźnieniem X ms

Obie funkcje zwracają jedynie liczbę - tak, typ INT.

Istnieją funkcje clearInterval i clearTimeout, aby wyłączyć odmierzacze czasu. Jako argument przyjmują liczbę (identyfikator). No dobrze, ale nie da się ich potem po prostu wznowić! Pozostaje stworzyć je od nowa.

timer = setInterval(function() {}, 5000); clearInterval(timer); timer = setInterval(function() {}, 5000); clearInterval(timer); timer = setInterval(function() {}, 7000);Zastanawiam się, dlaczego przez tyle lat nie usprawnili tej części JS.timer = new Interval(function() {}, 5000); timer.stop(); timer.start(); timer.reset(); timer.delay = 7000;Prawda, że lepiej? :)

Oczywiście kto chce, może napisać własną implementację, bazując na archaicznym set/clear...
Użytkownik Ferrari edytował ten post 06 luty 2010, 19:54


Nikt nie przewidział, że coś takiego będzie potrzebne, ale jak mówisz, zrób taką klasę obsługi cyklicznego wykonywania i nie będziesz miał tego typu problemów. Mnie jakoś to nie przeszkadza. Tak poza tym, można prościej:var ferrari = function() { window.alert('Ferrari'); }, timer; timer = setTimeout('ferrari()', 1000); clearTimeout(timer); timer = setTimeout('ferrari()', 2000);

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.