如何停止在jquery中发送的前一个ajax调用

时间:2012-01-16 09:43:14

标签: jquery

我在rails 2工作 我有一个问题,如何在同一元素上停止以前的ajax调用。

例如,

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

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

1 个答案:

答案 0 :(得分:4)

var currentRequest = null;

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

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

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

当然这个函数不是必需的,只需使用包含xhr-object的变量并在发送之前中止请求。