La proprietà XMLHttpRequest.readyState
è ciò che stai cercando.
Dallo Spec che hai fornito, vedrai che tutti quei flag "booleani" sono in realtà valori numerici.
- UNSENT (numerico 0)
- APERTO (numerico 1)
- HEADERS_RECEIVED (numerico 2)
- CARICAMENTO (numerico 3)
- DONE (numerico 4)
Questi valori sono il risultato del gestore di eventi XMLHttpRequest.onreadystatechange
. Fondamentalmente, per ottenere quei valori, fare qualcosa di questo effetto.
//In Javascript
var request = new XMLHttpRequest();
if (request) {
request.onreadystatechange = function() {
if (request.readyState == 4) { //Numeric 4 means DONE
}
};
request.open("GET", URL + variables, true); //(true means asynchronous call, false otherwise)
request.send(""); //The function that executes sends your request to server using the XMLHttpRequest.
}
Tenete a mente, sempre scrivere il onreadystatechange
evento PRIMA chiamando il metodo XMLHttpRequest.send()
(se si decide di fare chiamate asincrone). Inoltre, le chiamate asincrone chiameranno il listener di eventi XMLHttpRequest.onreadystatechange
, quindi è sempre di vitale importanza averlo implementato.
Maggiori informazioni Wikipedia
fonte
2010-03-22 22:54:05
Qualsiasi motivo si sta lavorando a questo livello basso? certamente jquery o simili ti daranno risultati migliori. –
@Byron Whitlock, jQuery ajax è solo un wrapper delle chiamate Ajax, e sono d'accordo, ti dà migliori risultati di errore. –
Entrambi avete ragione, alla fine userò jQuery e non ho nemmeno bisogno di usare quei "flag", ma mi piace sapere cosa sta succedendo alla base anche se finalmente userò jQuery per tutti. –