2

setIntervalデータベースからデータを取得するために ajaxを使用するとこの問題が発生し、データベースから取得したデータが saveHere と等しい場合、変数 saveHere と一致しなくなるまで再びループし、データが返されるまでブラウザをフリーズします。私が取得したものは、saveHere と等しくありません。

次に例を示します。

var saveHere = 'RED';
var interval = setInterval(function() {

    var sample = $.ajax({
        type: 'GET',
        url: 'database.php',
        data : data
    }).responseText;

    if (sample != 'RED') {
        clearInterval(interval);
        saveHere = sample;
    }
    else {
        console.log('load again');
    }

},1000);

本当にアドバイスが必要です。前もって感謝します。文法について申し訳ありません。

4

4 に答える 4

0

あなたのコードでは、 「RED」と等しくないかどうかをテストします。

if(sample != 'RED'){ . . .

ループのその部分は間隔を停止します

赤に等しくない場合

}else{

間隔をクリアせずに単純に「再度ロード」をログに記録します

正確に何を達成しようとしていますか?

于 2013-09-17T08:06:41.997 に答える
0

間隔をクリアしています。つまり、その後間隔は発生しません。

代わりに、以下のように if 条件内に interval 内部コードをラップすることができます。

var interval = setInterval(function()
{
    if(sample != 'RED') {
        var sample = $.ajax({
            type: 'GET',
            url: 'database.php',
            data : data
        }).responseText;

    saveHere = sample;
    }
    else
    {
        console.log('load again');
    }
},1000);
于 2013-09-17T08:04:32.987 に答える