我已经完成了一个使用php和ajax的facebook应用程序来获取有关朋友的统计信息并找到最佳匹配。该应用程序正在使用选项卡并且工作正常,但有时当我单击一个选项卡发送ajax请求并加载图标显示我没有得到任何回复并且加载图标一直显示。有没有办法可以计算ajax调用的秒数,所以我会在x秒后将用户重定向到另一个html页面?
答案 0 :(得分:1)
要实现您想要获得的内容,您可以调用(在X秒之后,使用setTimeout())一个函数,该函数检查是否已加载ajax响应。 例如:
var responseLoaded = false;
function checkIt(){
if(!responseLoaded)
window.location = "%http://alternative-page%";
}
setTimeout(checkIt,10000) //after 10 seconds
responseLoaded可以是一个全局变量,可以在ajax响应结束时设置为true。 或者,您可以检查当时是否存在某些DOM元素或JS var(即由AJAX调用创建)(当通过setTimeout调用该函数时)
然后,您可以使用
Date.getTime()
获取当前时间戳。您可以将开头的时间戳与ajax响应末尾的时间戳进行比较,以查看所需的总时间。 (如果你想检查平均ajax加载时间)
答案 1 :(得分:1)
另一种选择是设置xmlhttprequest对象的timeout参数。在jQuery中,它是选项对象中的超时选项。
$.ajax ({
timeout: 1000,
success: successCallback,
error: function (req, error, errorStatus) {
if (error == 'timeout') {
//send them to other page....
}
}
});
你可能想要放入更多的错误处理程序...同样,由于xmlhttpobject2具有超时函数回调,现在这个过程可能会更加简化......
也不要在语法上引用我。我是通过记忆在手机上写的......