2015-10-28 43 views
2

我想打電話給我的AJAX功能,直到已經AJAX運行不作迴應如何調用ajax函數直到已經運行ajax不給予迴應?

頁是每個秒和每秒AJAX功能呼叫負載,但我想打電話給阿賈克斯,直到已經運行AJAX功能不responde。

我可以存儲ajax函數刷新率,以便在此之後我的函數加載?

任何解決方案?請幫幫我。

下面是我正在使用的代碼。

功能realtime_content() {

var xmlhttp=false; 
if (!xmlhttp && typeof XMLHttpRequest!='undefined') 
    { 
    xmlhttp = new XMLHttpRequest(); 
    } 
if (xmlhttp) 
    { 
    RTupdate_query = "RTajax=1&DB=" + DB + "" + groupQS + usergroupQS + "&adastats=" + adastats + "&SIPmonitorLINK=" + SIPmonitorLINK + "&IAXmonitorLINK=" + IAXmonitorLINK + "&usergroup=" + usergroup + ""; 

    xmlhttp.open('POST', 'demophp'); 
    xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); 
    xmlhttp.send(RTupdate_query); 
    xmlhttp.onreadystatechange = function() 
     { 
     if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
      { 
      document.getElementById("realtime_content").innerHTML = xmlhttp.responseText; 
      } 
     } 
    delete xmlhttp; 
    } 
} 

這是頁面加載功能

function refresh_display() 
{ 
if ($start_count < 1) 
    { 
    realtime_content(); 
    } 
$start_count++; 
if (ar_seconds > 0) 
    { 
    document.getElementById("refresh_countdown").innerHTML = "" + ar_seconds + ""; 
    ar_seconds = (ar_seconds - 1); 
    setTimeout("refresh_display()",1000); 
    } 
else 
    { 
    document.getElementById("refresh_countdown").innerHTML = "0" 
    realtime_content(); 
    setTimeout("refresh_display()",1000); 
    } 
} 

我增加了一個圖像在該圖像頁面AST_timeonVDADall_final.php在頁面加載調用許多次,並在未決的去時間。

所以我想解決這個掛起的時間,如果頁面處於掛起沒有請求轉到本頁AST_timeonVDADall_final.php。

當掛起解決然後這個頁面AST_timeonVDADall_final.php再次調用。

enter image description here

回答

0

使用jQuery $.when()Document Link

說明:提供一種方法基於一個 或多個對象,表示異步 事件通常遞延對象執行回調函數。多個AJAX調用

$.when($.ajax("/page1.php"), $.ajax("/page2.php")).done(function(a1, a2) { 
    // a1 and a2 are arguments resolved for the page1 and page2 ajax requests, respectively. 
    // Each argument is an array with the following structure: [ data, statusText, jqXHR ] 
    var data = a1[ 0 ] + a2[ 0 ]; // a1[ 0 ] = "Whip", a2[ 0 ] = " It" 
    if (/Whip It/.test(data)) { 
    alert("We got what we came for!"); 
    } 
});