Sto giocando un po 'con raw XmlHttpRequestObjects + Comet Long Polling. (. Di solito, avrei lasciato GWT o in un altro manico quadro di questo per me, ma voglio saperne di più)Cometa (polling lungo) e stato XmlHttpRequest
ho scritto il seguente codice:
function longPoll() {
var xhr = createXHR(); // Creates an XmlHttpRequestObject
xhr.open('GET', 'LongPollServlet', true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
...
}
if (xhr.status > 0) {
longPoll();
}
}
}
xhr.send(null);
}
...
<body onload="javascript:longPoll()">...
ho avvolto la chiamata in longPoll()
una dichiarazione if che controlla per status > 0
, perché ho riscontrato, che quando esco dalla pagina (sfogliando da qualche altra parte o ricaricandola), viene inviata un'ultima chiamata di cometa non necessaria. [E su Firefox, è anche causa problemi gravi quando si fa una pagina di ricarica, per qualche motivo non ho pienamente capito ancora.]
Domanda: È che status
controllare il modo corretto di gestire questo problema, o c'è una soluzione migliore?
Non potresti semplicemente guardare qualsiasi implementazione esistente, ad es. GWT come hai detto, jquery, ecc.? – fig
@ fig-gnuton: Non sono sicuro, se è davvero facile seguire il codice javascript generato (io non sono un guru di javascript ...) –
Se sai abbastanza per essere in grado di giocare con XHR raw, sarai non avere problemi a guardare Jquery o altre librerie. Hanno versioni sorgente che sono completamente commentate. – fig