Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX][JavaScript] clearInterval , maly problem
Forum PHP.pl > Forum > Przedszkole
ktosz
Czesc. Mam sobie taki kod:

  1. <script type="text/javascript">
  2. function spr_msg() {advAJAX.get({url : "../spr_msg.php", onSuccess : function(obj) { document.getElementById("spr_msg").innerHTML = obj.responseText; }});}
  3. spr = setInterval("spr_msg();", 5000);


i to mi sprawdza co 5 sekund czy jest nowa wiadomosc, i mam plik spr_msg.php który już w php sprawdza czy jest nowa wiadomosc i wyswietla okienko. i mam tez w tym pliku cos takiego:

  1. <script type='text/javascript'>
  2. clearInterval('spr');


i problem, ze to nie dziala. caly czas wykonuje sie funkcja spr_msg(); co 5 sekund.
trueblue
  1. clearInterval(spr);
ktosz
Cytat(trueblue @ 28.11.2016, 10:12:26 ) *
  1. clearInterval(spr);

nie dziala. dodam, ze to jest w osobnym pliku ajax, czy to ma wplyw? po prostu jak juz sprawdzi to ma sie zatrzymac, a nie w nieskonczonosc sprawdzac
viking
Zatem w osobnym pliku nie ma pojęcia o zmiennej spr.
ktosz
Cytat(viking @ 28.11.2016, 10:24:04 ) *
Zatem w osobnym pliku nie ma pojęcia o zmiennej spr.

Czyli jak to zrobic? Nie mam opcji by przeniesc to do tego samego pliku niestety
viking
Zwróć w odpowiedzi informację czy ma być czyszczony i uwzględnij to w kodzie w pierwszym pliku.
ktosz
Cytat(viking @ 28.11.2016, 10:32:45 ) *
Zwróć w odpowiedzi informację czy ma być czyszczony i uwzględnij to w kodzie w pierwszym pliku.

Moglbym jakiegos linka przykladowego lub kod jak to zwrocic
nospor
Nie dawaj POMOGL jesli twoj temat jest jeszcze daleko od rozwiazania. POMOGL oznacza ze temat jest zakonczony. Usuwam POMOGL. Daj ponownie jak zakonczysz temat
viking
W obj zwróć dane w postaci JSON i na onSuccess odpowiednio przeparsuj.
ktosz
szukalem i probowalem, niestety mi sie nie udalo. ktos by pomogl? dlatego jest to w dziale przedszkole sad.gif
trueblue
A może tak będzie czytelniej i Ci coś podpowie?
  1. function spr_msg() {
  2. advAJAX.get({
  3. url : "../spr_msg.php",
  4. onSuccess : function(obj) {
  5. //tu sprawdzam czy trzeba zatrzymać timer czy nie
  6. //jeśli trzeba to wywołuję clearInterval(spr);
  7. document.getElementById("spr_msg").innerHTML = obj.responseText;
  8. }
  9. });
  10. }
  11. spr = setInterval("spr_msg();", 5000);


Rozwiązanie podał Ci viking. Ewentualnie jeśli nie wiesz jak zastosować JSON, to możesz sprawdzić czy nadeszła jakakolwiek odpowiedź, jeśli nadeszła to czyścisz timer (zakładam, że niepusta wartość responseText jest tym wyzwalaczem).
ktosz
Probowalem na wszystkie sposoby panownie, prosze o pomoc sad.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.