Dans "Pragmatic Ajax (Dynamic Site Web Static) Une introduction Web 2.0", j'ai accidentellement vu une introduction à l'état de ReadyStae. Je pense que cette introduction est très réaliste. La traduction est la suivante:
0: (non initialisé) La méthode Send () n'a pas encore été invoquée.
1: (Chargement) La méthode Send () a été invoquée, demande en cours.
2: (chargé) La méthode Send () s'est terminée, une réponse entière reçue.
3: (interactif) La réponse est analysée.
4: (terminé) La réponse a été analysée, est prête pour la récolte.
0 - (non initialisé) La méthode Send () n'a pas encore été appelée
1 - (Charge) La méthode Send () a été appelée et la demande est envoyée
2 - (le chargement est terminé) La méthode Send () a été exécutée et tout le contenu de la réponse a été reçu
3 - (interaction) Le contenu de la réponse est analysé
4 - (complet) L'analyse de contenu de réponse est terminée et peut être appelée sur le client
La plupart des autres livres sont vagues sur ces cinq états de ReadyState. Par exemple, dans "Foundations of Ajax", le "nom" de l'État est simplement répertorié dans le tableau 2-2 dans le livre - l'état de la demande. Les cinq valeurs possibles sont 0 = non initialisées, 1 = chargement, 2 = chargé, 3 = interactive et 4 = complète. Les détails de ces 5 états ne semblent pas du tout mentionnés dans "Ajax (site Web dynamique statique) en action". Bien que «l'Ajax professionnel» ne soit pas satisfaisant, il présente toujours des avantages:
Il y a cinq valeurs possibles pour ReadyState:
0 (non initialisé): l'objet a été créé mais la méthode Open () n'a pas été appelée.
1 (Chargement): La méthode Open () a été appelée mais la demande n'a pas été envoyée.
2 (chargé): la demande a été envoyée.
3 (interactif). Une réponse partielle a été reçue.
4 (complet): Toutes les données ont été reçues et la connexion a été fermée.
Il y a cinq valeurs possibles pour ReadyState:
0 (non initialisé): (XML (standardisation se rapproche) L'objet httpRequest) a été créé, mais la méthode Open () n'a pas encore été appelée.
1 (charge): La méthode Open () a été appelée, mais la demande n'a pas encore été envoyée.
2 (le chargement est terminé): La demande a été envoyée.
3 (Interaction): Une partie des données de réponse peut être reçue.
4 (complet): Toutes les données ont été reçues et la connexion a été fermée.
Dans "Comprendre Ajax: Utilisation de JavaScript pour créer de riches applications Internet", le tableau suivant est expliqué:
Code d'état ReadyState
Statut de l'objet XML (standardisation se rapproche)
(0) non initialisé
L'objet a été créé mais non initialisé. (La méthode ouverte n'a pas été appelée.)
(XML (standardisation se rapproche) L'objet HttpRequest) a été créé, mais n'a pas encore été initialisé (la méthode ouverte n'a pas encore été appelée).
(1) Chargement
Chargez l'objet créé, mais la méthode d'envoi n'a pas été appelée.
(XML (Standardization se rapproche) L'objet httpRequest) a été créé, mais la méthode d'envoi n'a pas encore été appelée.
(2) chargé
La méthode d'envoi a été appelée, mais le statut et les en-têtes ne sont pas encore disponibles.
La méthode d'envoi a été appelée, l'état (réponse HTTP) et l'en-tête ne sont pas disponibles.
(3) interactif
Interaction Certaines données ont été reçues. Appeler les propriétés Responsebody et ResponseText à cet état pour obtenir des résultats partiels renverra une erreur, car les en-têtes de statut et de réponse ne sont pas entièrement disponibles.
Certaines données ont été reçues. Cependant, si vous appelez les propriétés Responsebody et ResponseText pour le moment pour obtenir des résultats, une erreur se produira car les en-têtes de statut et de réponse ne sont pas entièrement disponibles.
(4) terminé
Toutes les données ont été reçues et les données complètes sont disponibles dans les propriétés ResponseBody et ResponseText.
Toutes les données ont été reçues et les données complètes peuvent être extraites dans les propriétés ResponseBody et ResponseText.
Selon l'introduction des cinq États de ReadyState dans les livres ci-dessus, je pense que "Pragmatic Ajax (Dynamic Site Web static) Une amorce Web 2.0" est plus en place, car elle mentionne le problème de l'analyse reçue des données, qui n'est pas mentionnée dans d'autres livres. C'est la raison pour laquelle le stade "(3) interaction" existe comme un processus de conversion nécessaire entre "(2) l'achèvement de la charge" et "(4) l'achèvement", c'est-à-dire quelle est sa tâche. En résumé, je pense que la méthode d'explication idéale devrait définir ces états avec précision et facilement compréhensible dans le modèle d'expression de "État: tâche (objectif) + processus + performance (ou caractéristiques). Le résumé actuel de l'essai est le suivant:
Description de l'état prêt à l'emploi
(0) non initialisé
À ce stade, confirmez si l'objet HttpRequest XML (standardisation se rapproche) est créé et se prépare à appeler la méthode Open () pour une non-initialisation. Une valeur de 0 signifie que l'objet existe déjà, sinon le navigateur rapportera une erreur - l'objet n'existe pas.
(1) chargement
À ce stade, l'objet XML (standardisation se rapproche de plus en plus) HttpRequest est initialisé, c'est-à-dire que la méthode Open () est appelée pour compléter le réglage de l'état de l'objet en fonction des paramètres (méthode, URL, true). Et appelez la méthode Send () pour commencer à envoyer une demande au serveur. Une valeur de 1 signifie qu'une demande est envoyée au serveur.
(2) le chargement est terminé
Cette étape reçoit les données de réponse du côté serveur. Mais ce qui est obtenu, ce sont les données d'origine de la réponse du serveur et ne peuvent pas être utilisées directement sur le client. Une valeur de 2 signifie que les données de réponse complètes ont été reçues. Et préparer la prochaine étape de l'analyse de données.
(3) interaction
À ce stade, les données de réponse côté serveur reçu sont analysées. Autrement dit, selon le type MIME renvoyé par l'en-tête de réponse côté serveur, les données sont converties en un format accessible via les attributs ResponseBody, ResponseText ou ResponseExml (la normalisation se rapproche de plus en plus), en préparant les appels clients. Le statut 3 signifie que les données sont analysées.
(4) terminé
À ce stade, confirmez que toutes les données ont été analysées dans le format disponible pour le client et que l'analyse a été terminée. Une valeur de 4 signifie que les données ont été analysées. Les données peuvent être obtenues via les propriétés correspondantes de l'objet HttpRequest (la normalisation se rapproche de plus en plus).
En résumé, le cycle de vie de l'ensemble du XML (la normalisation se rapproche de plus en plus) objet httprequest devrait inclure les étapes suivantes:
Créer - Initialiser la demande - Envoyer la demande - recevoir des données - Analyser les données - Compléter
Dans des applications spécifiques, clarifier la signification des cinq états de ReadyState (XML (standardisation se rapproche) et les différentes étapes du cycle de vie de l'objet Httprequest peuvent éliminer le mystère du noyau de l'Ajax (site Web statique) (derrière la déclaration vague est soit un moyen prétentieux et mystérieux de créer un sentiment de mystère; ou "" les gens avec des gens avec l'informatique), la plus grandement bénéficiaire; Réduire la frustration dans l'apprentissage et l'amélioration de la confiance en soi.
Par exemple, en suivant l'exemple:
La copie de code est la suivante:
// Déclarer le tableau
var states = ["Initialisation ...",
«Initialisation de la demande… réussi!
Envoi d'une demande ... ",
"succès!
Recevoir des données ... ",
"Finition!
Analyser les données ... ",
"Finition!
»];
// Extrait de code interne de la fonction de rappel
if (xml (standardisation se rapproche) http.readystate == 4)
{
var span = document.CreateElement ("Span");
span.innerhtml = états [xml (standardisation se rapproche) http.readystate];
Document.Body.ApendChild (SPAN);
if (xml (standardisation se rapproche) http.status == 200)
{
var xml (standardisation se rapproche) doc = xml (la normalisation se rapproche) http.Responsexml (la normalisation se rapproche);
// autre code
}
// N'oubliez pas de le détruire pour éviter les fuites de mémoire
xml (standardisation se rapproche) http = null;
}autre{
var span = document.CreateElement ("Span");
span.innerhtml = états [xml (standardisation se rapproche) http.readystate];
Document.Body.ApendChild (SPAN);
} Les résultats sont les suivants:
Initialisation de la demande ... réussi!
Envoi d'une demande ... réussi!
Recevoir des données ... terminées!
Analyse des données ... terminées!
Il est facile de comprendre ce que l'objet HttpRequest XML (standardisation se rapproche) à toutes les étapes. Par conséquent, il est facile d'avoir une compréhension vraiment simple et claire de la partie fondamentale de l'Ajax (site Web dynamique statique).