¿Hay usos útiles de readyState diferente de “4” (completa) en una devolución de llamada XHR.onreadystatechange?

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

Pregunta

¿Alguna vez ha utilizado un objeto XHR a onreadystatechange intercepción con un diferente readyState de "4" (completo)?

Tengo curiosidad por saber si alguna vez activa una función con los posibles valores diferentes. No puedo imaginar un uso real de los otros estados. ¿Son algo útil que hacer algo?

¿Puede dar algunos ejemplos prácticos en su caso?

Estoy hablando de estos :

  • 0: solicitud no inicializados
  • 1: conexión del servidor establecida
  • 2: solicitud recibida
  • 3: Solicitud de procesamiento
  • 4: Solicitud de acabado y la respuesta está lista
¿Fue útil?

Solución

lo uso en una intranet que he desarrollado a efectos de notificaciones. Al interceptar el estado 3 Puedo notificar al usuario que inició la solicitud.

También lo utilizan para medir el tiempo las solicitudes de tiempos de transmisión. Puedo mostrar el tiempo transcurrido entre los estados 3 y 4.

Desde que uso MooTools me extendió la clase de solicitud para disparar el evento onStateChange:

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

En una nota adicional. Las definiciones de los estados que se haya publicado (de w3cschools) son engañosos, estos son más claro para mí (de http://www.w3.org/TR/XMLHttpRequest/#states ):

  • ENVIADO (valor numérico 0) El objeto se ha construido.

  • ABIERTO (valor numérico 1) El método open () se ha invocado con éxito. Durante este cabeceras de petición de estado se pueden establecer utilizando setRequestHeader () y la solicitud se pueden hacer utilizando el método send ().

  • HEADERS_RECEIVED (valor numérico 2) Todas las redirecciones (si los hay) se han seguido y se han recibido todas las cabeceras HTTP de la respuesta final. Varios miembros de respuesta del objeto están ahora disponibles.

  • carga (valor numérico 3) está siendo recibido el cuerpo de la entidad respuesta.

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

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