在发送对 Backbone.js 集合中相同url的另一个请求之前中止所有活动请求

o4hqfura  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(111)

我正在进行搜索请求考虑这个:
用户输入活动流的“筛选器A”。集合的url更改以表示筛选器集合。在“筛选器A”的xhr返回以重置集合之前,调用fetch。用户快速输入“筛选器B”。“筛选器B”从服务器返回,为“过滤器B”自动调用reset。“过滤器A”最终返回(在“过滤器B”之后)并将集合重置为“过滤器A”。应用程序现在处于错误的状态。
如何中止上一个挂起请求

self.collection = new searchCollection();
self.collection.fetch({
    timeout : 60000,
    type : 'POST',
    data : {
      "searchString" : searchKey
    },
    beforeSend : function(xhr) {},
    success : function(result) {},
    error : function(xhr, status, error) {}
});
omjgkv6w

omjgkv6w1#

维护一个变量以保存获取请求。

self.fetchXhr = self.collection.fetch();

在发出任何获取请求之前,请检查变量是否有有效且正在进行的请求。

if(self.fetchXhr != undefined && self.fetchXhr.readyState > 0 && self.fetchXhr.readyState < 4)
   self.fetchXhr.abort();

相关问题