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);
答
问题是在这里async: false
,这会导致页面无响应,将其删除。
或更改为async: true
。
的问题是在这里'异步:假,',导致页面无法响应,将其删除。 – Musa
您是否有使AJAX调用同步的正当理由? – AdamJeffers
我们在网站的其他地方有另一个VXML AJAX调用的类似问题,并且从async:true;异步:false;在那里解决问题,所以我在这里保持这种方式。 FWIW,改为async:true在这里似乎已经解决了这个问题 – awestover89