Timer i wyłączenie setInterval |
Timer i wyłączenie setInterval |
5.12.2015, 10:48:51
Post
#1
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) |
Dzień dobry
Mam taki oto skrypt timera na stronie:
A wywołuję go tak: I jeśli jeden Interwał jest uruchomiony to wszystko pięknie działa i interwał zostaje wyłączony, natomiast jeśli jest kilka uruchomionych to mimo wykonania zadania interwał nadal działa. I tutaj moje pytanie, jak wyłączyć setInterval jeśli np. są 4 uruchomione? Proszę o pomoc. Ten post edytował miccom 5.12.2015, 10:51:48 -------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
5.12.2015, 11:50:52
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) |
Wykorzystuj zmienną counter jako tablicę i dodawaj tam wszystkie timery. Wówczas będziesz miał dostęp do wszystkich i spokojnie se usuniesz. Na razie po prostu dodajesz i nadpisujesz własności statyczne pustej tablicy
-------------------- ★Mój blog || Okiem krytyka★
|
|
|
5.12.2015, 11:53:26
Post
#3
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) |
OK, a możesz jaśniej? Bo nie rozumiem co napisałeś?
Tworzę tablicę:
A następnie do countera dopisuję idTimera
Czy to nie jednoznaczne z dodaniem do tablicy counter rekordu idTimera? czy tak to ma wyglądać?
Ten post edytował miccom 5.12.2015, 11:56:36 -------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
5.12.2015, 11:57:10
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) |
Nie. Tablica dalej jest pusta (możesz to sprawdzić sprawdzając counter.length).
Z racji tego, że w JS tablice są po prostu specyficznym typem obiektów, zapis typu tablica.wlasnosc działa tak samo jak obiekt.wlasnosc. Jak chcesz coś dodać do tablicy, najłatwiej użyć counter.push -------------------- ★Mój blog || Okiem krytyka★
|
|
|
5.12.2015, 12:38:30
Post
#5
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) |
OK.
Nie rozumiem:) ale zrobiłem tak:
i przy
widzę odpowiednio ilości timerów uruchomionych. Jak teraz jeden z nich zatrzymać? -------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
5.12.2015, 14:02:52
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) |
Hmm… może taki przykład coś Ci pomoże: http://jsfiddle.net/Comandeer/skquys49/
-------------------- ★Mój blog || Okiem krytyka★
|
|
|
5.12.2015, 14:16:00
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 043 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) |
Kod var counter =[];
counter.push(setInterval(function(){console.log('a')}, 1000)); counter.push(setInterval(function(){console.log('b')}, 1000)); counter.push(setInterval(function(){console.log('c')}, 1000)); clearInterval(counter[0]); |
|
|
5.12.2015, 17:50:09
Post
#8
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) |
ok sazian, a jeśli nie są po kolei timery?
Na końcu usuwamy counter[0], a gdybym chciał te countery ponumerować? i dać np. counter[1], counter[13], counter[5] itd? Jeden timer ma np. 1 minutę, drugi 7 minut a trzeci 2 minuty... -------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
5.12.2015, 18:24:57
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) |
To poczytaj kod z mojego przykładu
push zwraca indeks tablicy, więc wystarczy ten fakt wykorzystać (zadeklarować zmienną w funkcji loadTimer) -------------------- ★Mój blog || Okiem krytyka★
|
|
|
5.12.2015, 20:08:55
Post
#10
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) |
coś takiego?
Jak dam potem
to nie zatrzymuje mi timera. Nic nie rozumiem z Twojego przykładu. Możesz przygotować przykład z kilkoma timerami z różnie upływającym czasem i automatyczne kasowanie timera ( setInterval ) przy wyzerowaniu czasu? Ten post edytował miccom 5.12.2015, 20:23:20 -------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
5.12.2015, 20:21:50
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) |
Kod clearInterval(pushed - 1); Miałem napisać, że zwraca długość tablicy. A indeks ostatniego elementu to długość - 1. -------------------- ★Mój blog || Okiem krytyka★
|
|
|
5.12.2015, 20:53:36
Post
#12
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) |
Ok, poradziłem sobie w taki sposób, że dodałem zmienną tylko dla setInterval równą idTimera.
Więc aby wyłączyć timer należy tylko wykonać clearInterval
I pięknie działa. Dziękuje za naprowadzenie mnie na rozwiązanie. Pozdrawiam. -------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
Wersja Lo-Fi | Aktualny czas: 29.03.2024 - 02:08 |