如何正确取消永远不会完成的杰出Ajax请求?

Pet*_*son 8 ajax request-cancelling

这个问题就像另一个问题,除了在JQuery的上下文中提出一个问题,我没有使用.

我的页面上的Ajax代码每十秒发出一次POST.偶尔 - 每600个请求 - 我的客户端代码挂起,等待永远不会显示的响应.

代码将超时并重新发出Ajax请求,但首先我要清理有关未完成请求的所有内容:我不想留下任何残留状态以便稍后解决问题.

取消未完成的请求以便正确整理的正确方法是什么?

谢谢!

lon*_*day 5

存储对上一个AJAX请求的引用,并在启动下一个请求时中止它.

例如:

var lastRequest;

setInterval(function() {
    lastRequest.abort(); // abort the last request

    lastRequest = new XMLHTTPRequest(); // and the rest of your XHR code
}, 10000);
Run Code Online (Sandbox Code Playgroud)