·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> IE8+中XMLHttpRequest支持timeout属性及ontimeout事件
不久前我写了一个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。