您是否曾经使用过XHR对象拦截了与“ 4”(完整)不同的现有状态的截止性statechange?

我很想知道您是否曾经触发具有不同值的函数。我无法想象其他国家的真正使用。他们做某事有些用吗?

如果有的话,可以举一些实用的例子吗?

我说这些:

  • 0:请求未初始化
  • 1:建立服务器连接
  • 2:收到的请求
  • 3:处理请求
  • 4:请求完成,响应准备就绪
有帮助吗?

解决方案

我将其用于用于通知目的的Intranet。通过拦截状态3,我可以通知用户请求启动。

我还使用它来计时请求时间传输时间。我显示在状态3和4之间经过的时间。

由于我使用Mootools,因此我扩展了请求类以启动OnStateChange事件:

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

附加说明。您发布的状态的定义(来自W3CSCHOOLS)具有误导性,这些状态对我来说更清晰(来自 http://www.w3.org/tr/xmlhttprequest/#states):

  • 未插入(数字值0)对象已构造。

  • 打开(数字值1)Open()方法已成功调用。在此状态请求期间,可以使用setRequestheader()设置标头,并且可以使用send()方法制作请求。

  • headers_received(数值2)所有重定向(如果有)都遵循,并收到了最终响应的所有HTTP标题。该对象的几个响应成员现在可用。

  • 加载(数字值3)响应实体机构正在收到。

  • 完成(数字值4)数据传输已经完成或在转移期间出现问题(例如,无限重定向)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top