Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Odświeżanie strony bez przeładowania
Forum PHP.pl > Forum > XML, AJAX
peszek07
Cześć,

napisałem sobie skrypt czatu, złożonych z 2 plików, dodawania i wyświetlania. Są one wyświetlane na jednej stronie w "ramkach". W pliku pokazywania wpisów z bazy, mam wpisane odświeżanie co 4 sekundy. Przez to przeładowywanie czat zaczyna poprostu "zamulać". Czy dało by radę zrobić tak by pobierało wpisy bez odświeżania?

Chat opiera się na bazie MySql, jestem zielony w ajaxie smile.gif

Z góry dziękuje i pozdrawiam, Peszek.
ciembor
Patrz mój post niżej;). Albo od razu tutaj: http://www.ape-project.org/
peszek07
Aha, spróbuję, ale najpierw chciałbym zapytać czy zadziała to na darmowym hostingu (cba.pl)
ciembor
Jeśli nie masz shella, to serwera raczej nie postawisz. Ale poczytaj więcej o Ajax PUSH, websockets czy amf, da się do zrobić bez otwierania portu.
peszek07
Mógłbyś mnie jakoś naprowadzić ? Jak już pisałem jestem totalnie zielony co do ajaxa, a potrzebuję takie cacko do mojego czatu.
ShadowD
jquery i .post(), poczytaj i wszystko będziesz wiedzieć. :-)
peszek07
Mi nie chodzi o wysyłanie tylko pobieranie ;d
ShadowD
.load(), tylko pobiera, a .post() wysyła i pobiera, poczytaj w dokumentacji...
ciembor
Samo JQuery i metoda post() nie da mu czasu rzeczywistego. Ciągle będzie musiał odpytywać serwer czy są jakieś zmiany. Jeśli nie znasz Ajaksa, to raczej niewiele Ci wytłumaczę. Czytaj:).

http://en.wikipedia.org/wiki/Comet_%28programming%29
http://en.wikipedia.org/wiki/Reverse_Ajax
http://www.dzone.com/links/ajax_pushlike_c...with_comet.html

snitch.gif

Dla mnie też ta technika jest nowinką i dopiero ją testuję.
peszek07
Nie ogarniam tego, a angielski nie jest moją najmocniejszą stroną :<<
ciembor
Nic na to nie poradzę. Poczytaj najpierw o samym ajaksie, o nim jest więcej materiałów po Polsku.
peszek07
Powiem tek. .load() mi zupełnie wystarczy, tylko jak załadować zewnętrzne strony ?
breaked
np. przy zdarzeniu onClick daj: $.load("jakis_plik.php");

najprostsze zastosowanie tej funkcji winksmiley.jpg
peszek07
Ale jak dam np. $("#div").load("http://google.pl");

to mi nie załaduje blinksmiley.gif blinksmiley.gif
breaked
a gdzie to dajesz ?

pokaż kod
peszek07
kod nie ma nic do tego, jak daje strony z tego samego serwa to odpala :<<
breaked
no bo ta funkcja jest do tego, żebyś dołączał strony które masz na serwerze
ciembor
Takie rozwiązanie wystarczy, ale koledze chyba chodziło o rozwiązanie w czasie rzeczywistym. Z samym jquery można zrobić co najwyżej sprawdzanie co jakiś interwał czy nie ma nowych wiadomości.
peszek07
Właśnie o to mi chodzi, wysyłanie nie ma tu nic do rzeczy, chodzi mi tylko żeby pobierało co sekunde strone, na całkiem inną stronę...

Tylko że nie wiem jak to zrobić, load() nie obsługuje chyba stron zewnętrznych.
ciembor
http://api.jquery.com/load/

Cytat
i can't load html page from other website using .load(),
code exemple :
$("#test").load("http://www.domainname.com/inde...");
thanks

Cytat
This is due to XSS. You will need to use JSONP or a Web Service.

http://frontend.pl/2010/04/jsonp-crossdoma...c-przegladarke/
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.