并发发送ajax请求,并发处理的Ajax请求
我有一个链接列表,点击时分别执行不同的Ajax调用。
每个Ajax响应都会被指定一个目标,它将被显示。
在处理请求时,链接仍然可以被点击(=进一步的Ajax调用)。
下面的例子有两个目标和四个链接:两个指向DIV#d1,两个指向DIV#d2。
如何确保只发送最后一个请求的响应最终会显示在其目标DIV中?
如果我点击标记为Data1,然后Data2的链接,则必须中止第一个调用,因为Response1可能在Response2之后到达。这个问题似乎意味着我必须跟踪以前对每个目标的请求,所以只要有新的请求,我就可以放弃它们。
我写过这段代码。我想知道你是否认为这是正确的做法。
$(function(){
var register = {};
$(".trigger").on("click", function() {
var target = $(this).attr("data-target");
var url = $(this).attr("href");
if (register[target] == undefined) register[target] = [];
ajaxCall = $.get(url, function(data) { // Ajax request
$("#" + target).html(data);
});
for (a in register[target]) { // Aborts existing ajax requests for this target
register[target][a].abort();
}
register[target] = []; // Empty register for this target
register[target].push(ajaxCall); // Register current ajax request
return false;
});
});
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)