2017-06-23 67 views
1

簡介:的jQuery:阿賈克斯 - 如何找到倒數第二個呼叫

爲了將數據插入到數據庫中,我使用異步方法使用jQuery AJAX方法,由於這些調用計數不知道有多少請求將被髮送,我正在使用ajaxStop方法來確定通話已結束。

問題:

我的需要,問題是:在所有的呼叫已經結束,插入的數據到數據庫中,我需要找出那些插入的記錄數,所以我嘗試添加功能或電話在ajaxStop()方法內部,在所有Ajax調用或完成後實際觸發。因爲這將在文檔內的所有ajax調用之後觸發,當我撥打電話時,將觸發並一次又一次地成爲無限循環。

  1. 什麼是所有 異步調用完成後,我可以得到總的記錄或
  2. 我可以找出倒數第二個電話,這樣我可以拉 許多如何插入記錄的方式。
  3. 有沒有其他方法可以實現這一點。

我使用jQuery的Ajax功能如下:

<script> 
//Declaration of function that will insert data into database 
    $.ajaxSetup({ 
     url: "senddata.php" 
    }); 

function senddata(filename,query,t){ 
    var file = filename; 
    var q = query; 
     $.ajax({ 
      type: "POST", 
      data: {file,q,t}, 
      async: true, 
      success: function(html){ 
       $('#responce').append('<li>' + html + '</li>'); 
      }, 
      error:function(exception){ alert('Exeption:'+exception); } 
     }) 
     } 

     $(document).ajaxStop(function() { 
      $.post('senddataQuery.php', { num: 5 }, function(result) { 
       //alert(result); 
       $('#responce').append('<li>' +result+ '</li>'); 
      }); 
     }); 
</script> 

建議和指導表示歡迎。

感謝您的提前。

回答

1

我會做一些如添加一個全局變量數組,每個成功的功能力推其簽名:

var ajaxFunctions = []; 
 
var file = filename; 
 
var q = query; 
 
$.ajax({ 
 
    type: "POST", 
 
    data: {file, q, t}, 
 
    async: true, 
 
    success: function(html) { 
 
    ajaxFunctions.push("Success1"); 
 
    $('#responce').append('<li>' + html + '</li>'); 
 
    }, 
 
    error: function(exception) { 
 
    alert('Exeption:' + exception); 
 
    } 
 
}) 
 
} 
 

 
$(document).ajaxStop(function() { 
 
    $.post('senddataQuery.php', { 
 
    num: 5 
 
    }, function(result) { 
 
    ajaxFunctions.push("Success2"); 
 
    //alert(result); 
 
    $('#responce').append('<li>' + result + '</li>'); 
 
    }); 
 
});

那樣簡單,如果你想獲得的是被執行的最後一個函數,你總是可以得到:

console.log(ajaxFunctions[ajaxFunctions.length - 1]); 
+1

是的我想說的是,他需要在每一次Ajax成功時更新DOM中的某些東西,否則他將如何跟蹤插入的記錄。 – garek007

+0

@ garek007是的......我們都認爲一樣。 –

+0

@Praveen Kumar,感謝您的回覆,我需要動態調整最後一次調用或最後一次調用,因爲我需要獲取插入數據的總數。如果你想知道最後一個,但是我們將會像你剛纔提到的那樣知道,但是我需要動態識別,並在那裏應用一些動作來獲得所需的計數,所有調用完成後,一次。如果我在回覆中遺漏了任何內容,請糾正我的問題。 – UM1979