jquery abort ajax - 什么时候?

时间:2012-09-20 17:41:00

标签: jquery ajax asynchronous

我正在做一个画廊,它具有在照片之间导航的功能, 下一个和上一个。

接下来和之前切换大量异步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之间时不会中止。

1 个答案:

答案 0 :(得分:2)

ajax()函数返回一个promise,因此你可以使用done()来触发下一个ajax调用。如果先前的ajax调用失败,则不会调用done()。

参考:http://api.jquery.com/category/deferred-object/