Newsgroup: it.comp.lang.javascript
Titolo: AJAX + ie = crash o quasi...

Salve newsgroup ultimamente sto scrivendo una chat in js che utilizza 
XMLHTTPRequest vengono fatte chiamate ogni 5 secondi con query al db, 
genero un array js in php che poi l'eval esegue, il problema è che ho 
notato che ogni tanto ie si pianta o meglio non mi permette più di 
navigare all'interno del mio sito. (ne cliccando ne premendo f5 ne 
cambiando url a mano).
se invece cambio sito e vado ad esempio su google tutto sembra tornare 
alla normalità, naturalmente se poi tento di tornare sul mio sito non va.
Avete qualche idea o sapete se è un sistema di protezione di IE 
(ultimamente sembra che la ms stia in fissa :P)
Grazie..
By Neo

..Neo.. ha scritto:

Ciao Neo,
avrai piantato il sito, non è difficile, devi aspettare il timeout e
riguardare il tuo programma.
Ho notato la bruttura del polling ogni 5 secondi. Il bello
dell'XMLHTTPRequest sta nel fatto che il server quando ha qualcosa 'da
dire' lo può fare quando vuole, senza considerare che una chat con un
refresh di 5 secondi è una tortura. :)
Ciao.

dire' lo puņ fare quando vuole
Ne sei sicuro? ;)
Non e' cosi' comunque, per ora non c'e' alternativa al polling, anzi c'e' ma 
XMLHttpRequest non centra nulla (bisogna lasciare le connessioni aperte, e 
questo lo puo' fare il server). 

 Avete qualche idea o sapete se č un sistema di protezione di IE 
Su altri browser funziona?
'bye

 questo lo puo' fare il server).
Ciao Cicap.
Sicuro, uno dei vantaggi dell'XMLHttpRequest è l'asincronia.
La pagina (javascript) lancia un send, quando il server ha nuovi dati
risponde, la pagina li impagina e rilancia il send.
Ciao.

risponde, la pagina li impagina e rilancia il send.
Ciao,
asincronia non significa questo. XMLHttpRequest usa il protocollo HTTP come 
al solito:
il client richiede e il server risponde. Il server non puo' prendere 
l'iniziativa di contattare il client quando vuole...a meno di usare tecniche 
particolari tipo lasciare la connesisone aperta (che ha i suoi svantaggi 
ovviamente).

Agostino De Matteis ha scritto:

firefox fino ad ora non ha mai dato problemi...
tuttavia mi da un casino di errori js tra cui: 'nessun elemento trovato' 
penso che questo dipenda dal fatto che il php quando non ci sono dati 
non restituisce nulla e js si preoccupa. posso evitare questo problemino?
avevo letto un articolo sul timeout del request il problema č che io 
utilizzo lo stesso oggetto xmlhttprequest per fare anche altre cose e 
ammetto che sul' problema non sono molto ferrato.
tnx
By ..Neo..

 l'iniziativa di contattare il client quando vuole
e chi ha detto questo?
Asincrono vuol dire che il browser invia una richiesta e non aspetta la
risposta per continuare lo script.
Quando la pagina lancia un send chi è che apre la connessione?
Ciao

Quando la pagina lancia un send chi è che apre la connessione?
Il punto e' che non e' vero che il server apre la connessione quando gli 
pare per spedire dati, evitando cosi' la necessita' del polling. Anche 
perche' sarei proprio curioso di vedere come gestiresti tu una simile cosa 
con l'oggetto XMLHttpRequest, visto che tale oggetto prevede la chiamata a 
onreadystatechange solo dopo la send. 

> risponde, la pagina li impagina e rilancia il send.
In pratica con il send apri la connessione, il server non ti risponde
subito, ma solo quando ha i dati o entro un determinato tempo per non
andare in timeout, javascript impagina i nuovi dati e rilancia il send.
Sei convinto?
Ciao.

Sei convinto?
Si ora ho capito cosa intendevi esattamente.
Beh ma io non consiglierei una simile tecnica tanto alla leggera. 
Generalemente meglio il polling cento volte!
se hai 200 utenti hai 200 connessioni quasi permanenti: scalabilita' zero.
Per una chat poi non e' certo il massimo.
Poi ovviamente dipende: se sai che la tua chat avra' pochi utenti per volta 
sempre allora questa tenica puo' essere efficacie.