Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Auto refresh na chacie
Forum PHP.pl > Forum > Przedszkole
Maxie
Zrobiłem prosty czat na podstawie iframe/php/mysql. Wszystko jest ładnie, poza jednym szczegółem ;/ fajnie by było jakby ten iframe się refreshował co parę sekund. Wygooglowałem jedynie możliwość użycia:
  1. <META HTTP-EQUIV="REFRESH" CONTENT="5">
Ok. Refreshuje stronę, tylko brzydko się wczytują tabelki itp. pomyślałem więc, o preloaderze, lecz jednak nie umiałbym go tu zastosować ;/ . Więc teraz pytanie do was, jak inaczej zrefreshować chat? (w ogóle było by świetnie jak by było jak na facebooku haha.gif, tzw. nowe posty się wsuwają ;p )
!*!
słowa klucz: ajax, jQuery.
Natalka
Kod
$(".chat").show("fast").load("/rozmowa.php).show("fast");
        var refreshId = setInterval(function() {
            $(".chat").show("fast").load('/rozmowa.php').show("fast");
        }, 5000);
    $.ajaxSetup({ cache: false });



rozmowa.php tutaj wyświetlasz sobie z bazy danych rozmowę,
.chat to Twój div w którym chcesz wyświetlać rozmowe.

Odświeża się co 5 sekund w tle smile.gif
Maxie
W JavaScripcie jestem zielony, a dało by radę sprawdzić, czy wynik strony, która jest wczytana, a którą chce odświeżyć się różni, jeżeli nie to czeka, a jeżeli się różni to odświeża?
CTRL
Przecież skrypt kolegi wyżej sam co 5 sekund załaduje Ci wartość czatu, bez względu na to czy się coś zmieni czy nie, a jeśli się zmieni to oczywiście nowe wiadomości się pokażą.
Maxie
No właśnie tak, ale na niestety strona (tudzież div) znika na sekundkę, przy czym jest efekt "mrygania", temu wolałbym, gdyby strona odświeżała się tylko, gdy musi ;/ dało by radę?
!*!
Tak. Przez ajax odwołujesz się do skryptu php, tam sprawdzasz cache, lub datę ostatniego wpisu i zwracasz jakiś wynik json, w JS sprawdzasz odebrane dane i albo robisz przeładowanie, albo nie.
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.