我正在做一个画廊,它具有在照片之间导航的功能, 下一个和上一个。
接下来和之前切换大量异步ajax调用,以便可以快速在照片之间导航。
现在这是我的问题,假设我在照片#1然后执行:next,previous,next,previous。
由于ajax调用是异步的,因此为照片2检索的信息与照片1的信息混合在一起等等。
所以我需要在next和previous中止现有的ajax调用,然后进行ajax调用。
我尝试了以下方式:
var xhr=false;
function(){
if(xhr){
xhr.abort();
}
xhr=$.ajax({
});
}
这不能做到,似乎有些请求在我的代码中快速进入next和previous之间时不会中止。
答案 0 :(得分:2)
ajax()函数返回一个promise,因此你可以使用done()来触发下一个ajax调用。如果先前的ajax调用失败,则不会调用done()。