XmlHttpRequest学习笔记 (7) 异步模式

之前提到过,Open()方法的第三个参数Async指定了XmlHttpRequest的通信模式是同步的,还是异步的。当使用异步模式通信的时候,Send()方法会立即返回,而不会等到加载完所有服务器发回的数据才返回。在异步模式下,我们可以通过注册XmlHttpRequest的OnReadyStateChange回调函数来获取它状态的变化,从而做出相应的操作。

来看下面的代码:

这段代码中,当xhr对象的readyState有变化时,xhr会自动调用它的onreadystatechange所对应的方法,也就是那个匿名方法。readyState的值从0到4,分别代表了XmlHttpRequest的5种状态:

  1. 未初始化(Open方法未被调用)
  2. 请求已创建(Open方法已调用,Send方法未调用)
  3. 报头可用(Send方法已调用,并已获得HTTP报头)
  4. 交互中(XmlHttpRequest正在和服务器通信)
  5. 完成(XmlHttpRequest已加载所有数据)

使用异步模式,我们就可以在加载服务器数据的同时,做一些其它的事情,比如显示一个进度条什么的,来提高用户体验。

另外,在异步模式中,可以使用abort方法来中断HTTP请求。


发表评论

电子邮件地址不会被公开。 必填项已用*标注