Che cosa significano le diverse versioni in XMLHttpRequest e come posso utilizzarle?

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

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

L’elenco completo dei valori di 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 il 4.

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

La risposta di kieron contiene ref w3schools. a cui nessuno si affida, la risposta di Bobince fornisce il collegamento, che in realtà indica l’implementazione nativa di IE,

ecco quindi la documentazione originale citata per capire correttamente cosa rappresenta readystate:

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

UNSENT (valore numerico 0)
L’object è stato costruito.

APERTO (valore numerico 1)
Il metodo open () è stato richiamato con successo. Durante questo stato le intestazioni delle richieste possono essere impostate utilizzando setRequestHeader () e la richiesta può essere eseguita utilizzando il metodo send ().

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

CARICAMENTO (valore numerico 3)
Il corpo dell’entity framework di risposta viene ricevuto.

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

Per favore leggi qui: W3C Explaination Of ReadyState

Documentazione definitiva originale

0 , 1 e 2 tracciano solo quanti dei metodi necessari per effettuare una richiesta che hai chiamato fino ad ora.

3 ti dice che la risposta del server ha iniziato a entrare. Ma quando stai usando l’object XMLHttpRequest da una pagina web non c’è quasi nulla (*) che puoi fare con quelle informazioni, dato che non hai accesso alle proprietà estese che ti permettono di leggere i dati parziali.

readyState 4 è l’unico che ha un significato.

(*: circa l’unico utilizzo immaginabile che posso pensare per il controllo di readyState 3 è che segnala una qualche forma di vita al server, quindi potresti aumentare la quantità di tempo che aspetti per una risposta completa quando lo ricevi. )

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 risposta pronta

stato 200: “OK”

404 pagina non trovata

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

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