jquery - 如何停止以前在 jquery 中发送的 ajax 调用

标签 jquery

我正在 Rails 2 工作 我在如何停止同一元素上的先前 ajax 调用方面遇到问题。

例如,

我有类别下拉列表,它会根据博客类型进行更新。 我点击了两次类型,所以发送了 2 个请求。在我的第二个请求结束之前,如果我根据第一个响应单击类别来加载子类别,现在加载类别的第二个响应结束并更新类别。但子类别是从第一响应类别中选择的其中一个类别的响应。

如何停止之前发送的用于获取类别的 ajax 调用。

最佳答案

var currentRequest = null;

function someFunction(target){
    currentRequest = jQuery.ajax({
       url: target,

       beforeSend : function()
        {           
            if(currentRequest != null)
            {
                currentRequest.abort()
            }
        },

        success: function() { alert("done"); }
    });
}

当然该函数不是必需的,只需使用包含 xhr 对象的变量并在发送之前中止请求即可。

关于jquery - 如何停止以前在 jquery 中发送的 ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8878115/

相关文章:

javascript - 如何验证 jQuery UI 日期选择器 "From Date"到 "To Date"

javascript - 为什么.animate到scrollTop在动画之前跳转到0?

jquery - Backbone Marionette,复合 View 初始化两次

javascript - 在元素单击时将 css 样式添加到 2 个列表的元素

javascript - 删除某些 div 元素的父级 href 属性

javascript - 使用 Javascript 和 JQuery 对 svg 元素进行动画处理

javascript - 图片不显示

javascript - 如何使用 JQuery 和跨站点脚本编写 ajax?

javascript - .load() 完成时的 jQuery Action

Javascript 替换函数不会删除字符串