En "Pragmatic Ajax (Sitio web Dynamic Static) una imprimación Web 2.0", accidentalmente vi una introducción al estado de Readystae. Siento que esta introducción es muy realista. La traducción es la siguiente:
0: (no inicializado) El método send () aún no se ha invocado.
1: (Carga) El método send () ha sido invocado, solicitud en progreso.
2: (cargado) El método send () se ha completado, recibida respuesta completa.
3: (Interactivo) La respuesta se está analizando.
4: (Completado) La respuesta se ha analizado, está lista para la cosecha.
0 - (no inicializado) El método send () aún no se ha llamado
1 - (cargar) se ha llamado al método send () y la solicitud se está enviando
2 - (la carga se completa) El método send () se ha ejecutado y todo el contenido de respuesta se ha recibido
3 - (interacción) El contenido de respuesta se está analizando
4 - (completo) El análisis de contenido de respuesta se completa y se puede llamar al cliente
La mayoría de los otros libros son vagos sobre estos cinco estados de ReadyState. Por ejemplo, en "Fundamentos de AJAX", el "nombre" del estado simplemente se enumera en la Tabla 2-2 en el libro: el estado de la solicitud. Los cinco valores posibles son 0 = no inicializados, 1 = carga, 2 = cargado, 3 = interactivo y 4 = completo. Los detalles de estos 5 estados parecen no ser mencionados en "Ajax (sitio web dinámico estático) en acción". Aunque el "AJAX profesional" no es satisfactorio, todavía tiene ventajas:
Hay cinco valores posibles para ReadyState:
0 (no inicializado): se ha creado el objeto pero no se ha llamado al método Open ().
1 (carga): se ha llamado al método Open () pero la solicitud no se ha enviado.
2 (cargado): se ha enviado la solicitud.
3 (interactivo). Se ha recibido una respuesta parcial.
4 (completo): se han recibido todos los datos y la conexión se ha cerrado.
Hay cinco valores posibles para ReadyState:
0 (no inicializado): (XML (la estandarización se está acercando) el objeto httprequest) se ha creado, pero el método Open () aún no se ha llamado.
1 (carga): se ha llamado al método Open (), pero la solicitud aún no se ha enviado.
2 (la carga se completa): se ha enviado la solicitud.
3 (interacción): se pueden recibir parte de los datos de respuesta.
4 (completo): se han recibido todos los datos y la conexión se ha cerrado.
En "Comprender AJAX: Uso de JavaScript para crear aplicaciones de Internet ricas", se explica la siguiente tabla:
Código de estado de ReadyState
Estado del objeto XML (la estandarización se está acercando)
(0) no inicializado
El objeto ha sido creado pero no inicializado. (El método abierto no se ha llamado).
(XML (la estandarización se está acercando) El objeto httprequest) se ha creado, pero aún no se ha inicializado (el método abierto aún no se ha llamado).
(1) Carga
Cargue el objeto se ha creado, pero no se ha llamado al método de envío.
(XML (la estandarización se está acercando) se ha creado el objeto httprequest) se ha creado, pero el método de envío aún no se ha llamado.
(2) Cargado
Se ha llamado al método de envío, pero el estado y los encabezados aún no están disponibles.
Se ha llamado al método de envío, el estado (respuesta http) y el encabezado no están disponibles.
(3) Interactivo
Interacción Se han recibido algunos datos. Llamar a las propiedades ResponseBody y ResponseText en este estado para obtener resultados parciales devolverá un error, porque los encabezados de estado y respuesta no están completamente disponibles.
Se han recibido algunos datos. Sin embargo, si llama a las propiedades ResponseBody y ResponseText en este momento para obtener algunos resultados, se producirá un error porque los encabezados de estado y respuesta no están completamente disponibles.
(4) Completado
Se han recibido todos los datos y los datos completos están disponibles en las propiedades ResponseBody y ResponseText.
Se han recibido todos los datos y los datos completos se pueden extraer en las propiedades ResponseBody y ResponseText.
Según la introducción de los cinco estados de ReadyState en los libros anteriores, creo que "Ajax pragmático (sitio web dinámico estático) Un imprimador Web 2.0" está más vigente, porque menciona el problema de los datos recibidos de análisis, que no se mencionan en otros libros. Esta es la razón por la cual la etapa de "(3) interacción" existe como un proceso de conversión necesario entre "(2) finalización de carga" y "(4) finalización", es decir, cuál es su tarea. En resumen, creo que el método de explicación ideal debería definir estos estados con precisión y fácilmente comprensible en el patrón de expresión de "estado: tarea (objetivo) + proceso + rendimiento (o características). El resumen de prueba actual es el siguiente:
Descripción del estado de ReadyState
(0) no inicializado
En esta etapa, confirme si el objeto HTTPREQUEST XML (la estandarización se está acercando) se crea y prepárese para llamar al método Open () para una initialización. Un valor de 0 significa que el objeto ya existe; de lo contrario, el navegador informará un error: el objeto no existe.
(1) Cargar
En esta etapa, se inicializa el objeto HTTPREQUEST XML (la estandarización se está acercando más y más), es decir, el método Open () está llamado a completar la configuración del estado del objeto de acuerdo con los parámetros (método, URL, verdadero). Y llame al método send () para comenzar a enviar una solicitud al servidor. Un valor de 1 significa que se está enviando una solicitud al servidor.
(2) La carga se completa
Esta etapa recibe los datos de respuesta del lado del servidor. Pero lo que se obtiene son los datos originales de la respuesta del servidor y no se pueden usar directamente en el cliente. Un valor de 2 significa que se han recibido los datos de respuesta completa. Y prepararse para la siguiente etapa de análisis de datos.
(3) Interacción
En esta etapa, se analizan los datos de respuesta del lado del servidor recibidos. Es decir, de acuerdo con el tipo MIME devuelto por el encabezado de respuesta del lado del servidor, los datos se convierten en un formato a los que se puede acceder a través de los atributos ResponseBody, ResponseText o ResponseSexml (la estandarización se está acercando más y más), preparándose para las llamadas del cliente. El estado 3 significa que los datos se están analizando.
(4) Completado
En esta etapa, confirme que todos los datos se han analizado en el formato disponible para el cliente y se ha completado el análisis. Un valor de 4 significa que los datos han sido analizados. Los datos se pueden obtener a través de las propiedades correspondientes del objeto HTTPRequest (la estandarización se está acercando cada vez más).
En resumen, el ciclo de vida de todo el objeto HTTPRequest XML (la estandarización se está acercando cada vez más) debe incluir las siguientes etapas:
Crear - Solicitud de inicialización - Solicitud de envío - Recibir datos - Analizar datos - Completar
En aplicaciones específicas, aclarar el significado de los cinco estados de ReadyState (XML (la estandarización se está acercando) y las diversas etapas del ciclo de vida del objeto httprequest) pueden eliminar el misterio del núcleo de Ajax (sitio web estático) (detrás de la declaración vago es una forma pretenciosa y misteriosa para crear un sentido de misterio; o "hacer que las personas sean claras con él"), rápido, rápido, es un benéico que es un misterio y un misterio. Frustración en el aprendizaje y la mejora de la confianza en sí mismo.
Por ejemplo, siguiendo el ejemplo:
La copia del código es la siguiente:
// declarar matriz
estados var = ["inicializando ...",
"Inicializando la solicitud ... ¡exitoso!
Enviar una solicitud ... ",
"¡éxito!
Recibir datos ... ",
"¡Finalizar!
Análisis de datos ... ",
"¡Finalizar!
"];
// fragmento de código interno de la función de devolución de llamada
if (xml (la estandarización se está acercando) http.readyState == 4)
{
var span = document.createElement ("span");
span.innerhtml = estados [xml (la estandarización se está acercando) http.readyState];
document.body.appendChild (span);
if (xml (la estandarización se está acercando) http.status == 200)
{
var xml (la estandarización se está acercando) doc = xml (la estandarización se está acercando) http.Responsexml (la estandarización se está acercando);
// otro código
}
// No olvide destruirlo para evitar la fuga de memoria
XML (la estandarización se está acercando) http = null;
}demás{
var span = document.createElement ("span");
span.innerhtml = estados [xml (la estandarización se está acercando) http.readyState];
document.body.appendChild (span);
} Los resultados son los siguientes:
Inicializando la solicitud ... ¡exitoso!
Enviando una solicitud ... ¡exitoso!
Recibir datos ... ¡completado!
Análisis de datos ... ¡completado!
Es fácil entender lo que el objeto HTTPRequest XML (estandarización se está acercando) en todas las etapas. Por lo tanto, es fácil tener una comprensión verdaderamente simple y clara de la parte central de AJAX (sitio web dinámico Static).