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 3424
  • 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

PxxLT  : (04 luty 2012 - 21:31) Wieki przeminęły a tu nadal ciągle te same osoby się tylko udzielają :D
_smerf_  : (01 luty 2012 - 18:59) aktualne mrozy zamroziły całe forum
sauron  : (27 styczeń 2012 - 13:25) zauktualizowane. Pytanie jest tylko jedno, ale odpowiedź trzeba podać słownie.
Ferrari  : (26 styczeń 2012 - 17:47) A jednak boty są. Trzeba kazać wpisać odpowiedź słownie, albo zastawić inne pułapki. Wszystkie wpisują "google" w pole Tlen.
sauron  : (26 styczeń 2012 - 01:17) Póki nie będą mieć zaimplementowanego języka polskiego nic nie zdziałają ;) Najwyżej mogą na ślepo wpisywać proste wyniki działań typu "1 dodać 1". Raz może trafią, ale wtedy można zrobić trochę bardziej skomplikowane równanie i już leżą
Pretender  : (25 styczeń 2012 - 19:45) nie potrafia odpowiedziec na proste pytanie ;)
Pretender  : (25 styczeń 2012 - 19:44) sauron metoda z zabezpieczeniem tekstowym zadzialala..boty jak na razie nie sforsowaly tego, jeszcze raz dzieki :)
yojo2  : (24 styczeń 2012 - 17:05) a to przepraszam.
sauron  : (24 styczeń 2012 - 10:48) Nie przedzierają się. To są po prostu "stare boty", które jeszcze nie zostały zbanowane. Żaden nowy nie powstał po 18 styczcnia.
yojo2  : (24 styczeń 2012 - 05:57) boty sie nadal przedzieraja :(
Pretender  : (23 styczeń 2012 - 11:14) ile mam czekać na Diablo III...??? <zły> ;)
Pretender  : (23 styczeń 2012 - 09:03) ok, dzięki, spróbujemy..:)
sauron  : (22 styczeń 2012 - 21:19) @pretender - zwykłe, dodatkowe pole przy rejestracji. Działanie matematyczne (po polsku) i wsio. Nie sądze, żeby boty się przez to przebiły. Ludzie z IQ mniejszym niż rozmiar buta też się nie przebiją - dodatkowy plus.
dawido90  : (22 styczeń 2012 - 17:40) http://www.makelifeasier.pl/ - blog Kasi Tusk ;-)// To jednak fake, osoba strona, ale i tak niezłe.
Pretender  : (22 styczeń 2012 - 10:03) Potwierdzenie Tekstowe - cos takiego jest lepsze?
Pretender  : (22 styczeń 2012 - 09:56) sauron ten rodzaj zabepieczenia to jest to jakis modul? itp/ mozna to gdzies kupic i sobie zainstalowac do swojego forum?
sauron  : (22 styczeń 2012 - 09:04) Onet padł w nocy na 30sek
dawido90  : (22 styczeń 2012 - 00:15) no i bardzo dobrze
sauron  : (22 styczeń 2012 - 00:05) europarl.europa.eu
sauron  : (22 styczeń 2012 - 00:04) Na profilu FB Anonymous informuje, że biorą się za stronę parlamentu europejskiego
Rozszerz pole shoutboxa