此方案的实际用例是,针对网站统计信息(google analytics,omniture等)发出ajax调用
如果readyState为2,服务器是否足以处理请求?
不确定,我以正确的方式提出问题。提前谢谢。
答案 0 :(得分:1)
当用户加载不同的页面时,任何正在进行的AJAX调用都将中止。但是,如果请求已经发送到服务器,那么服务器通常会处理完成请求(如果您不小心会话,这可能会锁定事情!)
如果您正在使用会话,请务必致电session_write_close()
提交会话文件并解锁,从而允许新请求启动。
xhr.onreadystatechange = function() {
if( this.readyState == 4) {
if( this.status != 200) alert("Error!");
}
};
否则,尝试离开页面的用户将被每个中止的AJAX请求的一个警报轰炸 - 使用自定义对话框或在this.status == 0
时不报告错误,以便用户可以继续下一页不受限制。