Domanda

XMLHttpRequest ha 5 readyState e ne uso solo 1 (l'ultimo, 4 ).

A cosa servono gli altri e in quali applicazioni pratiche posso usarli?

È stato utile?

Soluzione

L'elenco completo dei valori readyState è:

State  Description
0      The request is not initialized
1      The request has been set up
2      The request has been sent
3      The request is in process
4      The request is complete

(da https://www.w3schools.com/js/js_ajax_http_response.asp)

In pratica non ne usi quasi mai nessuno tranne che per 4.

Alcune implementazioni XMLHttpRequest potrebbero farti vedere le risposte parzialmente ricevute in responseText quando readyState == 3 , ma questo non è supportato universalmente e non dovrebbe essere invocato.

Altri suggerimenti

kieron La risposta contiene il riferimento w3schools. a cui nessuno si affida, La risposta di bobince fornisce un link, che in realtà indica l'implementazione nativa di IE,

quindi ecco la documentazione originale citata per comprendere giustamente ciò che rappresenta readystate:

  

L'oggetto XMLHttpRequest può trovarsi in diversi stati. L'attributo readyState deve restituire lo stato corrente, che deve essere uno dei seguenti valori:

     

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

     

APERTO (valore numerico 1)
     Il metodo open () è stato invocato correttamente. Durante questo stato, è possibile impostare le intestazioni delle richieste utilizzando setRequestHeader () e la richiesta può essere effettuata utilizzando il metodo send ().

     

HEADERS_RECEIVED (valore numerico 2)
     Sono stati seguiti tutti i reindirizzamenti (se presenti) e sono state ricevute tutte le intestazioni HTTP della risposta finale. Sono ora disponibili diversi membri di risposta dell'oggetto.

     

CARICAMENTO (valore numerico 3)
     Il corpo dell'entità di risposta è in fase di ricezione.

     

FATTO (valore numerico 4)
     Il trasferimento dei dati è stato completato o qualcosa è andato storto durante il trasferimento (ad es. Reindirizzamenti infiniti).

Leggi qui: W3C Explaination Of ReadyState

Documentazione definitiva originale

0 , 1 e 2 tengono traccia solo di quanti metodi necessari per effettuare una richiesta che hai chiamato finora.

3 ti dice che la risposta del server ha iniziato ad arrivare. Ma quando usi l'oggetto XMLHttpRequest da una pagina web non c'è quasi nulla (*) tu può fare con tali informazioni, poiché non si ha accesso alle proprietà estese che consentono di leggere i dati parziali.

readyState 4 è l'unico che ha un significato.

(*: sull'unico uso immaginabile a cui riesco a pensare per controllare readyState 3 è che segnala una qualche forma di vita alla fine del server, quindi potresti aumentare il tempo che puoi attendere una risposta completa quando lo si riceve.)

onreadystatechange Memorizza una funzione (o il nome di una funzione) da chiamare automaticamente ogni volta che la proprietà readyState cambia readyState Contiene lo stato di XMLHttpRequest. Cambia da 0 a 4:

0: richiesta non inizializzata

1: connessione al server stabilita

2: richiesta ricevuta

3: richiesta di elaborazione

4: richiesta terminata e la risposta è pronta

stato 200: " OK "

404: Pagina non trovata

  • 0: client UNSENT è stato creato. open () non ancora chiamato.
  • 1: OPENED open () è stato chiamato.
  • 2: HEADERS_RECEIVED send () è stato chiamato, intestazioni e stato sono disponibili.
  • 3: LOADING Download; responseText contiene dati parziali.
  • 4: FATTO L'operazione è completa.

(da https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState)

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