Komputer Świat Ekspert - Forum: [JS] setInterval i setTimeout - Komputer Świat Ekspert - Forum

Skocz do zawartości

Strona 1 z 1

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

#1 Użytkownik nie jest zalogowany   Ferrari 

  • Tajny agent USB
  • Grupa: Moderatorzy
  • Postów 3531
  • Rejestracja: 21-marzec 04

Napisano 06 luty 2010, 19:52

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

Przygoda w Biurowej Dzielnicy - TODA :: Przyszłość sieci Webb i informatyzacja Polski
There is a road to freedom. Its milestones are Obedience, Endeavor, Honesty, Order, Cleanliness, Sobriety, Truthfulness, Sacrifice, and love of the Fatherland.
0

#2 Użytkownik nie jest zalogowany   andrzej_aa 

  • AA, bo takie mam inicjały
  • PipPipPipPip
  • Grupa: Ekspert
  • Postów 2262
  • Rejestracja: 25-maj 05

Napisano 06 luty 2010, 20:05

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);

So have a nice day and see you next time :-)

Bykom - STOP! Promuj akcję, bądź Polakiem.
0

Strona 1 z 1


Szybka odpowiedź

  

Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych


Zmień widoczność shoutboxa Shoutbox

emikyou  : (16 kwiecień 2012 - 13:26) @Ferrari: Na PŁ korzystają z "OpenGL SuperBible: Comprehensive Tutorial and Reference" i "OpenGL Programming Guide: The Official Guide to Learning OpenGL, Versions 3.0 and 3.1"
wtomczak  : (10 kwiecień 2012 - 09:27) masz problem z komputerem napisz na facebooku na stronie WT654, na pewno pomoże
Maciej :)  : (08 kwiecień 2012 - 09:36) A co do reklam, to mi na operze adBlock coś nie służy, szczególnie z postami bota redakcji :( od kiedy go dali, to zaczęło się walić..
Maciej :)  : (08 kwiecień 2012 - 09:35) Hej witam :) no, jak przestałem kupować Eksperta to wzięli i wstrzymali ;| także nie mam tylko numeru pierwszego i ostatniego :p trochę szkoda, parę lat się było...
neo5628  : (05 kwiecień 2012 - 21:57) Help http://forum.ks-ekspert.pl/topic/140746-problem-z-dzwiekiem/ Proszę
PiKey  : (21 marzec 2012 - 18:24) ludzie, pomóżcie :) http://forum.ks-ekspert.pl/topic/140418-jak-dziala-sprawdzanie-wykonania-zadania-na-stronach-typu-doladujse/
PiKey  : (21 marzec 2012 - 18:24) ds
A:-)Brunuś  : (17 marzec 2012 - 19:17) jest tu ktoś? http://forum.ks-ekspert.pl/topic/140400-firewire-obudowa-do-dysku-25-—-200-zlo/
Ferrari  : (16 marzec 2012 - 11:12) Polećcie dobrą książkę do OpenGL albo kurs w sieci :)
lisz55  : (15 marzec 2012 - 21:44) przez ktore reklamy? nie widze zeby jakies nowe byly
Pretender  : (15 marzec 2012 - 18:22) :/
Pretender  : (15 marzec 2012 - 18:22) az sie nie chce czytac tego forum przez te parszywe reklamy...ale dzidostwo zrobili...
yojo2  : (12 marzec 2012 - 13:26) wchodz na forum przez lynxa :P
Ferrari  : (10 marzec 2012 - 21:21) Jak tu nie korzystać z AdBlocka, kiedy Forum Eksperta wywala reklamę na całą stronę?
lisz55  : (09 marzec 2012 - 21:41) siedze i czytam calkiem niezle ale mogl by ktos wytlumaczyc o co chodzi z dark knightem nie widzialem tego filmu
lisz55  : (09 marzec 2012 - 21:40) to moze rozruszam troche czat http://moviesascode.net/
Pretender  : (06 marzec 2012 - 16:43) rozmowy tak jak Enty prowadziły w powieści Tolkiena :P
dawido90  : (05 marzec 2012 - 15:03) to już poprostu przyzwyczajenie
yojo2  : (04 marzec 2012 - 22:25) mailem przestac tu wchodzic, ale stwierdzilem ze skoro i tak zwykle tu tylko wchodze i wychodze, to wszystko jedno :P
Ferrari  : (04 marzec 2012 - 21:16) Już myślałem, że ruch na forum spada zera, a jednak pochodna zmieniła znak :)
Rozszerz pole shoutboxa