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 をチェックして警告を発します。

于 2013-10-24T10:48:52.903 に答える