我想确定哪个响应属于哪个(异步)调用。在我的客户端Web应用程序中,我有一个项目列表。每次用户导航到某个项目时,该应用程序都会进行ajax调用以检查该项目是否是最新的。如果用户导航非常快,则有几个呼叫(具有相同的回调函数)等待响应。有没有办法在jQuery中识别哪个响应属于哪个调用?或者我必须自己实施吗?
答案 0 :(得分:0)
在调用$ .ajax时,指定callback方法和callbackData。将itemId指定为callbackData。执行回调时,您将获得itemId,以便您可以使用此ItemId更新与该特定项目相关的数据
答案 1 :(得分:0)
所以我刚刚找到一个似乎可以解决我的问题的插件:
http://docs.jquery.com/AjaxQueue(但今天没有下载链接)
我找到了这种方法来识别哪个响应属于哪个呼叫:
var xhr = $.ajax({
type: 'GET',
url: 'service.php',
dataType: 'json',
data: data,
async: true,
timeout: 1000,
success: function(xhr)
{
alert('success with callID: ' + xhr.callID);
},
error: function(xhr)
{
alert('error with callID: ' + xhr.callID);
},
complete: function(xhr)
{
alert('completed callID: ' + xhr.callID);
}
});
xhr.callID = ++seqNo;
xhr.itemID = ID;
有了这些信息,就可以建立我自己的队列。