Y at-il des utilisations utiles de readyState différent de « 4 » (complet) dans un rappel XHR.onreadystatechange?

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

Question

Avez-vous déjà utilisé un objet XHR pour intercepter onreadystatechange avec un autre readyState de « 4 » (complet)?

Je suis curieux de savoir si vous déclenchez jamais une fonction avec les valeurs possibles différentes. Je ne peux pas imaginer une utilisation réelle des états des autres. Sont-ils un peu utile de faire quelque chose?

peut-il donner des exemples concrets le cas échéant?

Je parle de ces :

  • 0: demande non initialisées
  • 1: connexion au serveur établie
  • 2: demande reçue
  • 3: demande de traitement
  • 4: demande terminée et la réponse est prêt
Était-ce utile?

La solution

Je l'utilise sur un intranet j'ai développé à des fins de notification. En interceptant l'état 3 je peux informer l'utilisateur que la demande a commencé.

Je l'utilise aussi en temps les demandes des temps de transmission. J'affiche le temps écoulé entre les états 3 et 4.

Depuis que je l'utilise MooTools j'étendu la classe de demande de tirer l'événement OnStateChange:

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

Sur une note complémentaire. Les définitions des états que vous avez publiés (de w3cschools) induisent en erreur, ce sont plus clair pour moi (de http://www.w3.org/TR/XMLHttpRequest/#states ):

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

  • OUVRIR (valeur numérique 1) La méthode ouverte () a été invoquée avec succès. Au cours de ces en-têtes de demande de l'État peuvent être définies à l'aide setRequestHeader () et la demande peut être faite en utilisant la méthode send ().

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

  • chargement (valeur numérique 3) Le corps d'entité de réponse est reçu.

  • FAIT (valeur numérique 4) Le transfert de données est terminée ou quelque chose a mal tourné lors du transfert (par exemple infini réoriente).

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