获取最新的ajax请求并中止其他人

HP.*_*HP. 9 html javascript queue ajax jquery

我一直在寻找,这个问题似乎很简单,但找不到答案.我有多个请求调用不同的URL.但是对于每个url,我只想要一次结果,它必须是被调用的同一个url中的最后一个.我现在的问题是"如何才能获得最后一个?" 我看了这个,似乎是3岁:

http://plugins.jquery.com/project/ajaxqueue

还有其他任何方式可以干净利落地完成这项工作吗?如果有这样的东西,它将是完美的:

queue: "getuserprofile",
cancelExisting: true
Run Code Online (Sandbox Code Playgroud)

(将取消getuserprofile队列中现有的ajax)

谢谢

Mr.*_*ith 10

这解释了如何使用jQuery进行ajax调用以及如何中止它.您需要做的就是创建一个存储每个请求的数组.然后,您可以在添加新请求时取消之前的请求.

ajaxRequests = new Array();

queueRequest = function() {
    if(ajaxRequests[ajaxRequests.length - 1]) {
        ajaxRequests[ajaxRequests.length - 1].abort();
    }

    ajaxRequests[ajaxRequests.length] = //Insert New jQuery AJAX call here.
}
Run Code Online (Sandbox Code Playgroud)


kho*_*ong 5

由于我们只想要最后一个请求的结果,所以这非常简单并且有效。

var ajax = null;
var getFoo = function() {
    if(ajax) ajax.abort();
    ajax= $.ajax({});
};
getFool();
getFool();
getFool();
getFool();
getFool();
getFool();
Run Code Online (Sandbox Code Playgroud)

仅执行最后一个请求。