Witam!

Spotkałem ciekawy shotbox tutaj: http://www.scenemusic.eu/ . Zajrzałem w konsole Firebuga myśląc że ujrzę pojawiające sie co kilka sekund requesty, ale gdzie tam! Ujrzałem jeden request, który czekał na odpowiedź! Po prostu była ikonka oczekiwania. Jeżeli pojawiła się jakaś nowa wiadomość na shoutboxie - request ten się kończył i wywoływał pobranie nowych wiadomości, po czym znowu się odpalał i czekał.

Grzebałem w tym kodzie JS, ale jakoś nie moge dojść jak to jest zrobione. Spotkał się ktoś kiedyś z czymś takim? Dotąd takie sprawy załatwiałem przez setTimeout albo setInterval.

[EDIT]

Popytałem tamtejszych ludzi którzy zajmowali się wykonaniem tej strony (zrobiona jest w pythonie, na django), i z ich relacji wynika że jest to zrobione poprzez interwał po stronie serwera - po prostu jeden request, który oczekuje na odpowiedź serwera, a ta nadejdzie jeżeli w tym wypadku ktoś wyśle jakąś wiadomość. Ten interwał można uzyskać w php poprzez usypanie (sleep()) na np. 1 sekunde (sleep(1)), jeżeli nie znaleziono nowych wiadomości, i za tą sekundę znowu sprawdzić czy jest jakaś wiadomość.

Z tego co testowałem szybkość działania tamtego komunikatorka (dwa kompy, na jedym wysyłam wiadomość, na drugim patrzę za ile dojdzie), wiadomość wysłana przez jednego użytkownika dochodzi do drugiego w czasie ok. 1 sekundy :-) Więc chyba interwał po stronie serwera jest bardziej wydajny niż interwał requestów ajaxowych :-)