Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jQuery] Funkcja .ajax() - problem z zapętleniem
zgred1010
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 21.07.2010

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


Witam. Chciałbym zrobić sobie funkcje która będzie mi się powtarzała co jakiś czas ( w tym wypadku co sekundę )

To mój wstępny kod:
  1. <script type='text/javascript'>
  2. var check_mess = function(){
  3. $.ajax({
  4. url: "messages.php",
  5. success: function(data){
  6. $( "#ile_pw_show" ).empty().append(data);
  7. }
  8. });
  9. setTimeout(check_mess(), 1000);
  10. }
  11. $(document).ready(function(){
  12. setTimeout(check_mess(), 1000);
  13. });
  14. </script>


Kod w pewnym stopniu działa, ale "zamula" stronę w przeglądarce google chrome....

Bardzo bym prosiło o zoptymalizowanie kodu! (IMG:style_emoticons/default/businesssmiley.png)

Ten post edytował zgred1010 2.07.2011, 22:55:57
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
morbic
post
Post #2





Grupa: Zarejestrowani
Postów: 116
Pomógł: 29
Dołączył: 13.12.2010
Skąd: Warszawa

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


Ugh, to mamy tu poważne zapętlenie.

setInterval() wywołuje się raz, a funkcja ta powoduje cykliczne wykonywanie określonej instrukcji. Zlecasz raz i koniec.
setTimeout() wykonuje instrukcję jednokrotnie po określonym upływie czasu.

Jeśli na początku wywołujesz setInterval(), a później jeszcze przy każdym pobraniu danych, to może być niezły pasztet.

Masz dwa wyjścia:
  1. Ustawić setInterval() tylko raz, wewnątrz $(document).ready();
  2. zostawić skrypt tak jak teraz, ale z setTimeout();
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: 2.10.2025 - 20:59