检测用户操作中断的Ajax请求

时间:2012-07-05 09:50:55

标签: javascript ajax

我想检测正在进行Ajax调用的情况,然后由于某些用户操作(例如用户导航到另一个页面)而中断?

我可以看到,当发生这种情况时,我的onreadystatechange处理程序会被readyState == 4(DONE)和状态== 0调用。

问题是,有没有办法确定这真的与所描述的场景相对应(请求因用户操作而中止)?我想避免掩盖其他可能更危险的错误。

2 个答案:

答案 0 :(得分:3)

对于导航到其他页面的用户,您可以使用onbeforeunload事件。

例如:

window.onbeforeunload = function() {
    // Check ajax request state and do something accordingly...
}

答案 1 :(得分:1)

当用户触发ajax请求时,您可以设置变量(布尔值)。将其设置回回调函数。如果用户离开页面,您可以检查此变量。