如果浏览器在服务器响应之前重定向到其他页面,那么ajax调用会发生什么?

时间:2014-02-04 11:58:37

标签: javascript ajax browser

此方案的实际用例是,针对网站统计信息(google analytics,omniture等)发出ajax调用

如果readyState为2,服务器是否足以处理请求?

不确定,我以正确的方式提出问题。提前谢谢。

1 个答案:

答案 0 :(得分:1)

当用户加载不同的页面时,任何正在进行的AJAX调用都将中止。但是,如果请求已经发送到服务器,那么服务器通常会处理完成请求(如果您不小心会话,这可能会锁定事情!)

如果您正在使用会话,请务必致电session_write_close()提交会话文件并解锁,从而允许新请求启动。

编辑:哦,是的,无论你做什么,都不要这样做:

xhr.onreadystatechange = function() {
    if( this.readyState == 4) {
        if( this.status != 200) alert("Error!");
    }
};

否则,尝试离开页面的用户将被每个中止的AJAX请求的一个警报轰炸 - 使用自定义对话框或在this.status == 0时不报告错误,以便用户可以继续下一页不受限制。