好的,所以我正在创建一个完整的web应用程序使用AJAX与一些本地存储等。
我遇到的问题是,有时我双击,或点击标签来回快速调用$。post调用。
问题在于当回调函数被触发时,它们会被回调并相互覆盖,直到最后一个调用返回为止。
显然这是个问题。我需要做的是取消当前的POST调用,只是得到最后一个回调。
I have try:
// Make Call:
if(call != undefined){
call.abort();
}
var call = $.post(url,{do:'stuff'},function(response){
// callback stuff:
},'json');
一直说它未定义,如果可能的话,我宁愿使用。post而不是。ajax。
提前感谢您的帮助!
只需在click时取消click事件的绑定,在回调时重新绑定。
如果取消不能捕获所有挂起的xhr,您可以做的一件事是:增加一个计数器并将其传递给后端,以防止旧响应殴打新响应。只需让后端在响应中包含计数器值,然后您的回调可以在覆盖之前将其与本地计数器进行比较。