2011-06-09 86 views
1

我有Ajax請求jQuery的相同ajax調用殺

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

我把這種上變化,我試圖殺死以前調用如果正在進行像這樣

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

財產以後和幾個變化,但它總是在某個時候剎車。誰能告訴我如何做到這一點?

+12

您能否偶爾接受您的問題的答案? – Niklas 2011-06-09 13:14:47

+4

你應該接受一些你以前的問題的答案... – Patricia 2011-06-09 13:14:51

+2

接受一些答案請 – Mutt 2011-06-09 13:14:52

回答

4

正如其他人所說,你需要開始接受答案。

更新

我用這樣的網站上,它工作得很好我。

當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); 
       } 
      }); 
}); 
+0

nope我已經嘗試過了,我正在尋找的可能是一些唯一的ID用於調用或使用jqXHR對象或類似的東西。 – Yovo 2011-06-09 13:29:40

+0

是否發生錯誤? – Tomgrohl 2011-06-09 14:48:20

+0

不,但當我開始點擊更改時觸發ajax的chackboxes時,它會調用它兩次,因爲我認爲最後一次呼叫尚未啓動,而新呼叫是呼叫,並且我觸發了兩個呼叫。當我點擊緩慢它的作品。如果你有任何想法,我該如何做到這一點,我將非常感激。我試圖把var result = null;在改變功能的開始,但它又一次破裂,它嚇壞了我。我試過[ajaxmenager](http://www.protofunc.com/scripts/jquery/ajaxManager/)插件,但它只能停止新的通話並保持舊的狀態直到完成。 – Yovo 2011-06-09 16:13:01