jquery - 在发送主干集合中相同 url 的另一个请求之前中止所有事件请求

标签 jquery backbone.js marionette backbone-events

我正在发出搜索请求请考虑:

用户输入事件流的“过滤器 A”。 集合的 url 发生变化以表示过滤器 调用 collection.fetch 用户在“过滤器 A”的 xhr 返回之前快速输入“过滤器 B”以重置集合。 “Filter B”从服务器返回,“Filter B”自动调用collection.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) {}
});

最佳答案

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

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

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

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

关于jquery - 在发送主干集合中相同 url 的另一个请求之前中止所有事件请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20697678/

相关文章:

javascript - 在一个 slider 中创建多个范围滑动 handle

javascript - JSONP 请求无法正常工作,显示错误 404

javascript - 如何将 javascript 警报设置为始终位于所有应用程序之上

javascript - Backbone : How can I call a parent parent view?

backbone.js - Backbone 关系与 Require.js (AMD)

backbone.js - 如何在 Backbone Marionette 初始化程序中处理异步代码

javascript - DIV中的滚动音频

javascript - 无法交换模型集合属性?

backbone.js - Backbone 路由器无法直接访问

backbone.js - Backbone Marionette : Get Nested/Swap Views from a CollectionView