2015-12-14 160 views
0

有關我公司的網站的網頁之一,我們要驗證用戶的電話號碼。爲了做到這一點,我使用AJAX調用一個語音XML應用程序,該應用程序調用用戶提供的電話號碼,並等待他們輸入隨機生成的PIN。一旦我們收到語音應用程序的響應(無論是正確的PIN碼,不正確的PIN碼還是無答案),它都會將該響應轉發回去並完成AJAX呼叫。AJAX導致Chrome瀏覽器說,該網站是反應遲鈍

這整個過程可能需要長達一分鐘,運行完美,除了在Chrome中。當使用Chrome瀏覽器時,彈出窗口顯示「此頁面似乎沒有響應......」如果我忽略彈出窗口並讓通話完成,那麼一切正常。通話結束,AJAX完成,用戶被重定向到一個頁面,說明驗證是否成功。

我正在尋找一種方式,以避免鉻標記的頁面不響應。管理層擔心它看起來不專業,如果客戶選擇終止無響應的頁面提交從未完成。

AJAX調用發生在一個窗體上的iFrame中提出,如果有任何的影響。

function callNow() 
{ 

// Disable the button so they don't keep clicking while the call is going on. 
$("#call_now").attr("disabled", "disabled"); 
$("#call_now").unbind("click"); 

$(".state_a").hide(); 
$(".state_b").show(); 

// Wait 50 msec so that the 'processing' field can show. 
setTimeout(function() { 

    // Make an ajax call to initiate the call 
    $.ajax({ url: "/ajax-quicksign-verify-now.php", 
     type: "POST", 
     async: false, 
     data: {action: 1, 
      number: $("#number").val(), 
      pin: $("#pin").text()}, 
     success: function (response) { 
      if (response == 1) { 
       $("#verified").val("true"); 
      } else { 
       $("#verified").val("false"); 
      } 
      $("#quicksign_register").submit(); 
      return; 
     } 
    }); 

}, 50); 
+8

的問題是在這裏'異步:假,',導致頁面無法響應,將其刪除。 – Musa

+0

您是否有使AJAX調用同步的正當理由? – AdamJeffers

+0

我們在網站的其他地方有另一個VXML AJAX調用的類似問題,並且從async:true;異步:false;在那裏解決問題,所以我在這裏保持這種方式。 FWIW,改爲async:true在這裏似乎已經解決了這個問題 – awestover89

回答

0

問題是在這裏async: false,這會導致頁面無響應,將其刪除。

或更改爲async: true

相關問題