peszek07
27.12.2010, 22:09:55
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

Z góry dziękuje i pozdrawiam, Peszek.
ciembor
28.12.2010, 11:05:29
Patrz mój post niżej;). Albo od razu tutaj:
http://www.ape-project.org/
peszek07
28.12.2010, 11:12:32
Aha, spróbuję, ale najpierw chciałbym zapytać czy zadziała to na darmowym hostingu (cba.pl)
ciembor
28.12.2010, 11:41:03
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
28.12.2010, 11:51:33
Mógłbyś mnie jakoś naprowadzić ? Jak już pisałem jestem totalnie zielony co do ajaxa, a potrzebuję takie cacko do mojego czatu.
ShadowD
28.12.2010, 12:09:01
jquery i .post(), poczytaj i wszystko będziesz wiedzieć. :-)
peszek07
28.12.2010, 13:45:45
Mi nie chodzi o wysyłanie tylko pobieranie ;d
ShadowD
28.12.2010, 16:16:01
.load(), tylko pobiera, a .post() wysyła i pobiera, poczytaj w dokumentacji...
ciembor
28.12.2010, 18:23:31
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%29http://en.wikipedia.org/wiki/Reverse_Ajaxhttp://www.dzone.com/links/ajax_pushlike_c...with_comet.html
Dla mnie też ta technika jest nowinką i dopiero ją testuję.
peszek07
28.12.2010, 21:29:55
Nie ogarniam tego, a angielski nie jest moją najmocniejszą stroną :<<
ciembor
29.12.2010, 03:44:42
Nic na to nie poradzę. Poczytaj najpierw o samym ajaksie, o nim jest więcej materiałów po Polsku.
peszek07
29.12.2010, 12:28:35
Powiem tek. .load() mi zupełnie wystarczy, tylko jak załadować zewnętrzne strony ?
breaked
29.12.2010, 12:48:11
np. przy zdarzeniu onClick daj: $.load("jakis_plik.php");
najprostsze zastosowanie tej funkcji
peszek07
29.12.2010, 12:54:25
Ale jak dam np. $("#div").load("http://google.pl");
to mi nie załaduje
breaked
29.12.2010, 13:00:19
a gdzie to dajesz ?
pokaż kod
peszek07
29.12.2010, 13:03:16
kod nie ma nic do tego, jak daje strony z tego samego serwa to odpala :<<
breaked
29.12.2010, 13:34:29
no bo ta funkcja jest do tego, żebyś dołączał strony które masz na serwerze
ciembor
29.12.2010, 19:35:24
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
29.12.2010, 20:34:42
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
29.12.2010, 21:41:36
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.