2011-01-13 56 views
1

現在,我在加載網頁的時候出現了ajax調用的問題,在body的onload事件中,我將它指定爲調用startCount()updateTable()這兩個函數包含使用ajax調用從服務器端的數據庫獲取數據的代碼。問題是,當ajax返回它將只返回一個呼叫,另一個呼叫不響應。請幫助我發生什麼,以及如何解決它。同時使用ajax調用的問題

這是身體

<body onLoad="setAjaxConnection();startCount();updateTable()"> 

我使用XMLHttpRequest與正常的JavaScript,我不使用jQuery在onload ....

+0

我在身體的onload是=====>的onLoad = 「setAjaxConnection(); startCount(); updateTable()」 – PlodPla 2011-01-13 17:44:19

+0

你能添加的代碼三個功能呢? – 2011-01-13 17:44:25

+0

有什麼特別的理由不使用jQuery? – 2011-01-13 17:44:47

回答

0

使用JavaScript關閉。此鏈接可以幫助

http://dev.fyicenter.com/Interview-Questions/AJAX/How_do_I_handle_concurrent_AJAX_requests_.html

function AJAXInteraction(url, callback) { 
    var req = init(); 
    req.onreadystatechange = processRequest; 

    function init() { 
     if (window.XMLHttpRequest) { 
     return new XMLHttpRequest(); 
     } else if (window.ActiveXObject) { 
     return new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
    } 

    function processRequest() { 
     if (req.readyState == 4) { 
     if (req.status == 200) { 
      if (callback) callback(req.responseXML); 
     } 
     } 
    } 

    this.doGet = function() { 
     req.open("GET", url, true); 
     req.send(null); 
    } 

    this.doPost = function(body) { 
     req.open("POST", url, true); 
     req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
     req.send(body); 
    } 
} 

function startCount() { 
    var ai = new AJAXInteraction("/path/to/count.php", function(){alert("After startCount");}); 
    ai.doGet(); 
} 

function updateTable() { 
    var ai = new AJAXInteraction("/path/to/update.php", function(){alert("After updateTable");}); 
    ai.doGet(); 
} 
0

有一個呼叫「的onSuccess」啓動接下來的阿賈克斯呼叫。所以你可以打電話startCount(),當你返回時,你可以關閉updateTable()

0
function setAjaxConnection(){ 
    //call Ajax here 
    setAjaxConnectionResponce; 
} 

function setAjaxConnectionResponce(){ 
    //on readystate==4 
    startCount(); 
} 

function startCount(){ 
    // code for count 
    updateTable(); 
} 

function updateTable(){ 
    // code for update 
} 

<body onLoad="setAjaxConnection();">