关于“同步请求下Firefox 3中XHR的onreadystatechange事件不会触发”问题
< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>
var xhr = getXMLHttpRequest();
xhr.open(method, url, !sync);
xhr.send(para||null);
if(!sync)xhr.onreadystatechange = stateChange;
else stateChange();
function stateChange(){
if (4 == xhr.readyState){
if (200 == xhr.status){
//success
}else{
//failure
}
}
}
随着Firefox3的出现,想必很多人又多了不少烦恼:唉,又要多测试一种浏览器了。。
这里暂且记录下我遇到的第一个ajax有关FF3的“新特性”:在同步请求下,onreadystatechange事件是不起作用的,而在FF2,IE6,IE7下都是起作用的。
所以用同步请求的就需要注意了,一般需要用以下形式的代码:
var xhr = getXMLHttpRequest();
xhr.open(method, url, !sync);
xhr.send(para||null);
if(!sync)xhr.onreadystatechange = stateChange;
else stateChange();
function stateChange(){
if (4 == xhr.readyState){
if (200 == xhr.status){
//success
}else{
//failure
}
}
}
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步