2011-11-08 133 views
0

在我的網站上,我在鼠標懸停和鼠標懸停事件設置在HTML表格上。這些事件觸發ajax請求,並執行某些操作等。但是,我希望能夠不觸發第二個請求,如果已經運行。那麼,有沒有發現這些請求,因此避免了一秒鐘。順便說一句,我使用jQuery $.ajax() 如果它有幫助。檢測AJAX請求

在此先感謝

克里斯

回答

0

我想嘗試的東西一樣簡單:

var requestMade = false; 

function yourAjaxFunction(){ 
    if(!requestMade) 
    { 
     requestmade = true; 
     $.ajax({ 
      url: "page", 
      success: function(){ 
       requestMade = false; 
      } 
      error: function(){ 
       requestMade = false; 
      } 
     }); 
    } 
} 

您可以使用success:error:設置改變變量回false。

我從來沒有使用error所以你可能不得不包含其他一些東西,但這是一般的想法。

0

對於這個假設我會使用ajaxStart()ajaxStop()這將改變特定變量ajaxRunning可能在發送請求之前進行檢查(直接也許在ajaxStart()?)

0

當第一個ajax即將觸發時,將全局或本地靜態變量設置爲true,而不是在觸發第二個之前添加;)在完成一個請求之後,將此變量設置爲false