我知道你可以在timeout
上设置jQuery的$.ajaxSetup
属性,但这会中止当前的timedout请求。
我需要有哪些选项来监控全局每个单独的AJAX请求所花费的时间,以供用户等待的反馈。
伪代码:
if(timeTaken > 1000){
// taking a long time
} else if (timeTaken > 5000){
// this is embarrassing, please refresh!
}
但是使用jQuery的AJAX全局实现......
答案 0 :(得分:0)
你必须查看ajaxStart()和.ajaxStop()方法。
var totalTime = null;
var cachedTime = null;
function alertLoadingTime() {
if(!totalTime) return;
var loadingTime = totalTime / 1000;
console.log("loaded " + loadingTime + " seconds");
}
function timingStart() {
cachedTime = new Date;
}
function timingEnd() {
var endTime = new Date;
totalTime += endTime - cachedTime;
cachedTime = null;
alertLoadingTime();
}
$(document).ajaxStart(timingStart);
$(document).ajaxStop(timingEnd);
然后检查totalTime以警告smth。