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

8
这个问题类似于另一个问题,只是那个问题是在JQuery的上下文中提出的,而我不使用它。 我的页面上的Ajax代码每十秒发出一次POST请求。偶尔会出现这样的情况——大约每600个请求一次——我的客户端代码挂起等待永远不会出现的响应。
代码将超时并重新发出Ajax请求,但首先我想清理有关未完成请求的所有内容:我不想留下任何残留状态以后会混淆事情。
取消未完成的请求的正确方法是什么,以便事情得到适当的整理?
谢谢!
1个回答

5

在开始下一个 AJAX 请求之前,请存储对上一个请求的引用并使用abort()方法取消它。

例如:

var lastRequest;

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

    lastRequest = new XMLHTTPRequest(); // and the rest of your XHR code
}, 10000);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接