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

StackOverflow https://stackoverflow.com/questions/632774

Question

XMLHttpRequest a 5 readyState s, et j'en utilise seulement un (le dernier, 4 ).

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

Était-ce utile?

La solution

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

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

En pratique, vous n’utilisez presque jamais aucun d’eux, à l’exception du 4.

Certaines implémentations XMLHttpRequest peuvent vous permettre de voir les réponses partiellement reçues dans responseText lorsque readyState == 3 , mais cela n'est pas pris en charge de manière universelle. ne devrait pas être invoqué.

Autres conseils

La réponse de kieron contient la référence w3schools. à qui personne ne compte, La réponse de bobince donne un lien, qui indique en fait une implémentation native d'Internet Explorer,

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

  

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

     

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

     

OPENED (valeur numérique 1)
     La méthode open () a été appelée avec succès. Pendant cette période, les en-têtes de requête peuvent être définis à l'aide de setRequestHeader () et la requête à 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.

     

LOADING (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 de ReadyState du W3C

Documentation définitive définitive

0 , 1 et 2 enregistrent 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 plus rien (*). peut utiliser ces informations, car vous n’avez pas accès aux propriétés étendues qui vous permettent de lire les données partielles.

readyState 4 est le seul qui ait une signification.

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

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: la requête est terminée et la réponse est prête

statut 200: "OK"

404: page non trouvée

  • 0: UNSENT Client a été créé. open () pas encore appelé.
  • 1: open () a été appelé.
  • 2: HEADERS_RECEIVED send () a été appelé, ainsi que 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.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top