我有一个页面,向用户显示5个问题,当他点击下一个5 链接时,我将当前页面onbeforeunload()
的分数发送到脚本{{1}使用jQuery AJAX异步,并且当调用成功时,将显示接下来的5个问题。
updateScore()
但问题是,在慢速连接时,它可能会暂停浏览器一段时间,直到AJAX调用成功返回。当我尝试window.onbeforeunload=function()
{
$.ajax({
type: "POST",
url: "updateScore.php",
data: "pageScore="+score,
cache: false,
timeout:5000,
async:false
});
}
(默认)时,首先加载下一页而不调用{{1这可能是因为localhost中的连接速度很快,因此没有时间让async:true
调用完成。这就是我使用updateScore.php
的原因。它会发生吗(没有AJAX)如果我在实际案例中也使用AJAX
?如果是,有没有办法解决这个问题?
答案 0 :(得分:0)
我建议你稍微改变你的代码。
在“click”事件上发出ajax请求,并在ajax回调函数中重定向用户。
像这样:
$('#mybutton').on('click', function()
{
$('#pleasewait').show();
$ajax({
type: "POST",
url: "updateScore.php",
data: "pageScore="+score,
success: function() { document.location="nextpage.php" }
});
}