Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Timer i wyłączenie setInterval
miccom
post
Post #1





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Dzień dobry (IMG:style_emoticons/default/smile.gif)

Mam taki oto skrypt timera na stronie:

  1. counter = new Array();
  2. function loadTimer(czas,lokalizacjaTimera,idTimera){
  3. var s = czas;
  4. counter.idTimera = setInterval(timer, 1000); // ustawienie funkcji odpowiedajacej za cykliczne wywolanie(co 1 s) funkcji timer()
  5. var min = s / 60; // minuty
  6. var h = min / 60; // godziny
  7. var sLeft = Math.floor(s % 60); // pozostało sekund
  8. var minLeft = Math.floor(min % 60); // pozostało minut
  9. var hLeft = Math.floor(h); // pozostało godzin
  10.  
  11. if (minLeft < 10)
  12. minLeft = "0" + minLeft;
  13. if (sLeft < 10)
  14. sLeft = "0" + sLeft;
  15.  
  16. var out = hLeft + ":" + minLeft + ":" + sLeft; //tekst wyswietlony uzytkownikowi
  17. document.getElementById(""+lokalizacjaTimera+"").innerHTML = out;
  18.  
  19. $("#"+lokalizacjaTimera+"").html(out); // przypisanie tekstu timera do odpowiedniego elementu html
  20. function timer()
  21. {
  22. --s;
  23. var min = s / 60; // minuty
  24. var h = min / 60; // godziny
  25. var sLeft = Math.floor(s % 60); // pozostało sekund
  26. var minLeft = Math.floor(min % 60); // pozostało minut
  27. var hLeft = Math.floor(h); // pozostało godzin
  28.  
  29. if (minLeft < 10)
  30. minLeft = "0" + minLeft;
  31. if (sLeft < 10)
  32. sLeft = "0" + sLeft;
  33. var out = hLeft + ":" + minLeft + ":" + sLeft; //tekst wyswietlony uzytkownikowi
  34. $("#"+lokalizacjaTimera+"").html(out); // przypisanie tekstu timera do odpowiedniego elementu html
  35. if( s <= 0) //licznik osiągnął 0
  36. {
  37. //licznik się wyzerował należy podjąć odpowiednią akcje
  38. clearInterval(counter.idTimera); //zatrzymanie licznika
  39. console.log("kasujemy timer id="+idTimera);
  40. $.ajax({
  41. type : "POST",
  42. dataType : "json",
  43. url : "up.php",
  44. data : {
  45. 'idTimera':idTimera},
  46. success: function(data) {
  47. if (data.error)
  48. {
  49. alert("wystąpił błąd"+data.error);
  50. }
  51. else
  52. {
  53. alert("zadanie zakończone");
  54. }
  55. }
  56. });
  57. return;
  58. }
  59. }
  60. }


A wywołuję go tak:

  1. $(document).ready(function() {
  2. loadTimer(<?php echo $wnetrzePracownika['time'];?>,'timer<?php echo $kolejnyNumer;?>',<?php echo $kolejnyNumer;?>);
  3. });

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
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.09.2025 - 13:21