Pregunta

XMLHttpRequest tiene 5 readyState s, y solo uso 1 de ellos (el último, 4 ).

¿Para qué son los otros y en qué aplicaciones prácticas puedo usarlos?

¿Fue útil?

Solución

La lista completa de valores de readyState es:

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 la práctica, casi nunca usas ninguno de ellos, excepto 4.

Algunas implementaciones XMLHttpRequest pueden permitirle ver respuestas parcialmente recibidas en responseText cuando readyState == 3 , pero esto no es universalmente compatible y no se debe confiar en él.

Otros consejos

La respuesta de

kieron contiene la referencia de w3schools. a quien nadie confía La respuesta de bobince proporciona un enlace, que en realidad le dice a la implementación nativa de IE,

así que aquí está la documentación original citada para comprender correctamente qué representa readystate:

  

El objeto XMLHttpRequest puede estar en varios estados. El atributo readyState debe devolver el estado actual, que debe ser uno de los siguientes valores:

     

NO ENVIADO (valor numérico 0)
     El objeto ha sido construido.

     

ABIERTO (valor numérico 1)
     El método open () ha sido invocado con éxito. Durante este estado, los encabezados de solicitud se pueden establecer mediante setRequestHeader () y la solicitud se puede realizar mediante el método send ().

     

HEADERS_RECEIVED (valor numérico 2)
     Se han seguido todos los redireccionamientos (si los hay) y se han recibido todos los encabezados HTTP de la respuesta final. Varios miembros de respuesta del objeto ahora están disponibles.

     

CARGANDO (valor numérico 3)
     Se está recibiendo el cuerpo de la entidad de respuesta.

     

HECHO (valor numérico 4)
     La transferencia de datos se ha completado o algo salió mal durante la transferencia (por ejemplo, redirecciones infinitas).

Lea aquí: Explicación W3C de ReadyState

Documentación definitiva original

0 , 1 y 2 solo rastrean cuántos de los métodos necesarios para realizar una solicitud ha llamado hasta ahora.

3 le dice que la respuesta del servidor ha comenzado a llegar. Pero cuando está usando el objeto XMLHttpRequest de una página web, no hay casi nada (*) puede hacerlo con esa información, ya que no tiene acceso a las propiedades extendidas que le permiten leer los datos parciales.

readyState 4 es el único que tiene algún significado.

(*: el único uso concebible que puedo pensar para verificar readyState 3 es que señala alguna forma de vida al final del servidor, por lo que posiblemente podría aumentar la cantidad de tiempo espere una respuesta completa cuando la reciba.

onreadystatechange Almacena una función (o el nombre de una función) que se llamará automáticamente cada vez que cambie la propiedad readyState readyState Contiene el estado de XMLHttpRequest. Cambios de 0 a 4:

0: solicitud no inicializada

1: conexión de servidor establecida

2: solicitud recibida

3: solicitud de procesamiento

4: solicitud finalizada y la respuesta está lista

estado 200: " OK "

404: Página no encontrada

  • 0: se ha creado UNSENT Client. open () aún no se ha llamado.
  • 1: ABIERTO open () ha sido llamado.
  • 2: HEADERS_RECEIVED send () ha sido llamado, y encabezados y estado están disponibles.
  • 3: CARGANDO Descargando; responseText contiene datos parciales.
  • 4: HECHO La operación se ha completado.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top