0

我知道timeout您可以设置的 jQuery 属性$.ajaxSetup,但这会中止当前超时请求。

我必须使用哪些选项来全局监控每个单独的 AJAX 请求所花费的时间,以便为用户等待提供反馈。

伪代码:

if(timeTaken > 1000){
    // taking a long time
} else if (timeTaken > 5000){
    // this is embarrassing, please refresh!
}

但是使用 jQuery 的 AJAX 在全球范围内实现......

4

1 回答 1

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。

于 2013-10-24T10:48:52.903 回答