2

JavaScript 関数内に AJAX リクエストがあります。setInterval 関数を使用すると、AJAX 関数が 5000 ミリ秒ごとに実行されます。

以前の AJAX 呼び出しがまだ処理されているかどうかを確認する方法があるかどうか疑問に思っていたので、複数の AJAX 要求が同じではありません。

これが私のコードです:

function getData(fields){
    $.ajax({
        url: 'index.php',
        type: 'post',
        data: { fields: fields },
        dataType: 'json',
        success: function(json) {                                                                                       
        if (json) {
            // We have a response
        }   
    });
}

window.setInterval(function(){
    getPosts(fields);
}, 2000);

前もって感謝します!

ピーター

4

2 に答える 2

4
var req;

関数のスコープ外でアクセスできる変数を作成します。

function getData(fields) {
    req = $.ajax({...});

変数を ajax リクエストに割り当てます

setInterval(function() {
    if (req.state() == 'resolved' && req.state() !== 'pending') {
        getPosts(fields);
    }
});

検出する.state()

于 2013-07-15T20:25:41.007 に答える