Domanda

Hai mai usato un oggetto XHR per intercettare onreadystatechange con un diverso readyState da "4" (completo)?

Sono curioso di sapere se mai innescare una funzione con i possibili valori diversi. Non riesco a immaginare un vero e proprio uso degli altri stati. Sono in qualche modo utile per fare qualcosa?

Può dare alcuni esempi pratici se del caso?

Sto parlando di questi :

  • 0: richiesta non inizializzate
  • 1: connessione al server stabilita
  • 2: richiesta ricevuta
  • 3: elaborazione della richiesta
  • 4: Richiesta finito e la risposta è pronta
È stato utile?

Soluzione

Io lo uso su una rete intranet ho sviluppato ai fini della notifica. Intercettando lo stato di 3 posso informare l'utente che la richiesta ha iniziato.

Ho anche usarlo per tempo le richieste di tempi di trasmissione. Visualizzo il tempo trascorso tra stati 3 e 4.

Da quando uso MooTools ho esteso la classe richiesta per generare l'evento onStateChange:

var EarlyRequest = new Class({Extends: Request,
 onStateChange: function() {
  this.fireEvent("onStateChange", [this.xhr.readyState]);
  this.parent();
 }
});

In una nota aggiuntiva. Le definizioni degli stati che hai postato (da w3cschools) sono fuorvianti, questi sono più chiaro per me (da http://www.w3.org/TR/XMLHttpRequest/#states ):

  • UNSENT (valore numerico 0) L'oggetto è stato costruito.

  • APERTO (valore numerico 1) Il metodo open () è stata invocata con successo. Durante questo stato intestazioni di richiesta possono essere impostati utilizzando setRequestHeader () e la richiesta può essere fatta utilizzando il metodo send ().

  • HEADERS_RECEIVED (valore numerico 2) Tutti i reindirizzamenti (se presenti) sono stati seguiti e sono stati ricevuti tutti gli header HTTP della risposta finale. Diversi membri di risposta dell'oggetto sono ora disponibili.

  • CARICAMENTO (valore numerico 3) Il corpo dell'entità di risposta viene ricevuto.

  • DONE (valore numerico 4) Il trasferimento dei dati è stato completato o qualcosa è andato storto durante il trasferimento (per esempio reindirizzamenti infiniti).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top