【问题标题】:jquery same ajax call killjquery相同的ajax调用kill
【发布时间】:2011-09-11 17:00:11
【问题描述】:

我有ajax请求

  result = $.ajax({
              url: '/live-sell-search.php?id=123',
              success: function(result) {
              $('.results-list').html(result);
                }
            });

我在更改时调用它,如果它正在进行类似这样的事情,我会尝试终止之前的调用

if(result!='undefined'){resul.abort();}

还有几种变体,但它总是在某个时候刹车。谁能告诉我这是怎么做到的?

【问题讨论】:

  • 您能不时接受您的问题的答案吗?
  • 您可能应该接受一些关于您之前问题的答案...
  • @Niklas: +1 我偶尔喜欢 :)
  • @Naveen,已经从 0% 增加到 40%,似乎正在工作 :)
  • 我不知道有kill标签。

标签: jquery ajax call kill


【解决方案1】:

正如其他人所说,您需要开始接受答案。

更新

我在网站上使用它,它对我来说效果很好。

当 onChange 事件被调用时,它会检查是否已经有一个 AJAX 调用生效。如果是这样,它会中止它并开始一个新的 AJAX 调用。

一旦 AJAX 调用完成,xhr 变量就会被清空。真的很简单。

var xhr = null;

$("#textbox").change(function(){

    if( xhr != null ) {
         xhr.abort();
    }

    xhr = $.ajax({
              url: '/live-sell-search.php?id=123',
              complete: function( xhr ){
                  xhr = null; // empty xhr object
              },
              success: function( data ) {
                  $('.results-list').html( data );
              }
          });
});

【讨论】:

  • 不,我已经尝试过了,我正在寻找的可能是一些唯一的 ID 用于调用或使用 jqXHR 对象或类似的东西。
  • 没有,但是当我开始点击触发 ajax 的 chackboxes 时,它会调用它两次,因为我认为最后一个调用尚未开始,新的调用是调用,我触发了两个调用。当我点击慢时它工作。如果您有任何想法如何做到这一点,我将不胜感激。我试图把 var result=null;在更改功能开始时,但它再次中断,这让我感到害怕。我尝试了ajaxmenager 插件,但它只能停止新呼叫并保留旧呼叫直到完成。
  • 啊,对。我之前做过实时搜索 AJAX 调用。我会更新我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-15
  • 2015-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多