IE8+中XMLHttpRequest支持timeout属性及ontimeout事件

王朝学院·作者佚名  2011-05-04
窄屏简体版  字體: 小  |  中  |  大  |  超大  

不久前我写了一个Ajax工具库。这篇是对请求超时处理的补充。IE8/9的xmlHttPRequest对象已经增加这方面的支持了。IE10 pre1测试也支持。如果W3C能将这两个东东标准化多好啊,不用那么的hack方式实现了。

xmlhttpRequest的timeout属性可以设置,表示在等待响应多少毫秒之后终止。

即如果在规定的时间内浏览器没有收到响应,那么就触发timeout事件,给xhr.ontimeout赋值为一个响应函数后可被执行。

主要代码如下

view sourceprint?

01

xhr.onreadystatechange = function(){

02

if(xhr.readyState == 4){

03

try{

04

var s = xhr.status;

05

if(s>= 200 && s < 300){

06

//success(xhr);

07

}else{

08

//failure(xhr);

09

}

10

}catch(e){}

11

}else{}

12

};

13

xhr.open();

14

xhr.timeout = 1000;

15

xhr.ontimeout = function(){

16

alert('request timeout');

17

}

超时后再访问xhr的status属性会出异常,因此加上try catch。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航