PDA

View Full Version : [javascript/ajax]intercettare flush() del server


Jak696
27-10-2009, 19:34
mettiamo che io voglia realizzare una chat ajax...
composta da uno script php lato server che rimane sempre attivo (spostando in avanti a intervalli regolari il tempo di vita della pagina, con set_time_limit()) controllando su DB se ci sono nuovi messaggi e che, quando ne arriva uno, lo stampa con echo() e lo invia al client con flush()

lo script in questione viene richiamato con un oggetto XMLHttpRequest (per popolare il div dove sono contenuti i messaggi), ma come si comporta lo stesso in questo caso (di uno script che non termina)?
l'oggetto va comunque in readyState 4 o rimane in 3 ricevuto tutto il flush()?
lo stato http allegato alla stringa di risposta sarà 200 o piuttosto 206?

la mia supposizione (ma è così, campata in aria) è che ad ogni nuovo invio torni in readyState 3 e poi di nuovo 4, quindi si potrebbe sfruttare l'evento onReadyStateChange... confermate?

flx2000
28-10-2009, 10:03
Quella domanda mi ricorda qualcosa.... eheh ;)

Comunque, cercando online ho trovato questa guida, pare serva per creare dei socket in JavaScript; potrebbe essere quello che cerchi:

http://jibbering.com/2002/4/httprequest.html

Jak696
28-10-2009, 12:34
eheheh :D

grazie per il link, da un'occhiata veloce però noto che si tratta di una introduzione a XMLHttpRequest, però per chiamate effettuate dal client...

beh, provo a fare qualche test sul comportamento di tale oggetto col flush e vedo cosa succede :)