AJAX导致Chrome浏览器说,该网站是反应迟钝

问题描述:

有关我公司的网站的网页之一,我们要验证用户的电话号码。为了做到这一点,我使用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

问题是在这里async: false,这会导致页面无响应,将其删除。

或更改为async: true