web-dev-qa-db-fra.com

Que signifient les différents états de lecture dans XMLHttpRequest et comment puis-je les utiliser?

XMLHttpRequest a 5 readyStates, et je n’en utilise que 1 (le dernier, 4).

À quoi servent les autres et dans quelles applications pratiques puis-je les utiliser?

112
Marius

La liste complète des valeurs readyState est la suivante:

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

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

En pratique, vous n’en utilisez presque jamais, sauf 4.

Certaines implémentations de XMLHttpRequest peuvent vous permettre de voir les réponses partiellement reçues dans responseText quand readyState==3, mais ceci n'est pas universellement supporté et ne doit pas être invoqué.

171
Kieron

La réponse de kieron contient w3schools ref. La réponse de bobince indique un lien vers la mise en oeuvre native de IE,

voici donc la documentation originale citée pour bien comprendre ce que readystate représente:

L'objet XMLHttpRequest peut être dans plusieurs états. L'attribut readyState doit renvoyer l'état en cours, qui doit être l'une des valeurs suivantes:

UNSENT (valeur numérique 0)
L'objet a été construit.

OUVERT (valeur numérique 1)
La méthode open () a été invoquée avec succès. Pendant cet état, les en-têtes de requête peuvent être définis à l'aide de setRequestHeader () et la requête peut être effectuée à l'aide de la méthode send ().

HEADERS_RECEIVED (valeur numérique 2)
Toutes les redirections (le cas échéant) ont été suivies et tous les en-têtes HTTP de la réponse finale ont été reçus. Plusieurs membres de réponse de l'objet sont maintenant disponibles.

CHARGEMENT (valeur numérique 3)
Le corps de l'entité de réponse est en cours de réception.

DONE (valeur numérique 4)
Le transfert de données est terminé ou un problème est survenu pendant le transfert (par exemple, des redirections infinies).

Veuillez lire ici: Explication du ReadyState par le W3C

31
Vishal Sharma

documentation définitive originale

0, 1 et 2 trace uniquement le nombre de méthodes nécessaires pour effectuer une demande que vous avez appelée jusqu'à présent.

3 vous indique que la réponse du serveur a commencé à arriver. Mais lorsque vous utilisez l'objet XMLHttpRequest à partir d'une page Web, vous ne pouvez presque rien faire (*) avec ces informations, car vous ne le pouvez pas. avoir accès aux propriétés étendues qui vous permettent de lire les données partielles.

readyState 4 est le seul qui ait un sens.

(*: à propos de la seule utilisation envisageable à laquelle je puisse penser pour vérifier readyState 3 est que cela signale une certaine forme de vie du côté du serveur, de sorte que vous pouvez éventuellement augmenter le temps d'attente d'une réponse complète lorsque vous la recevez.)

22
bobince

onreadystatechange Stocke une fonction (ou le nom d'une fonction) à appeler automatiquement chaque fois que la propriété readyState change. readyState Contient le statut de XMLHttpRequest. Passage de 0 à 4:

0: demande non initialisée

1: connexion au serveur établie

2: demande reçue

3: demande de traitement

4: demande terminée et la réponse est prête

statut 200: "OK"

404 Page non trouvée

1
omertalmi
  • 0: UNSENT Client a été créé. open () pas encore appelé.
  • 1: OPENED open () a été appelé.
  • 2: HEADERS_RECEIVED send () a été appelé, les en-têtes et le statut sont disponibles.
  • 3: CHARGEMENT Téléchargement; responseText contient des données partielles.
  • 4: DONE L'opération est terminée.

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

0
Khurshid Ansari