2

PHPファイルの戻り値を使用して、htmlドキュメントを継続的に更新したいと考えています。したがって、jQuery 関数を使用する必要があります。

$.get('returnfunction.php', function(data) { 
test=data;
document.getElementById('t1').innerHTML=test; 
}); 

javascriptでこの関数を連続して呼び出すにはどうすればよいですか? setInterval は、この非同期関数には適切ではないようです。

ありがとう

4

2 に答える 2

3

を使用して非同期関数を呼び出す際の問題はsetInterval、サーバーまたはネットワークが低速である場合、未応答の要求が蓄積される可能性があることです。

方法は次のとおりです。

(function doOne(){
    $.get('returnfunction.php', function(data) { 
       test=data; 
       document.getElementById('t1').innerHTML=test;
       setTimeout(doOne, 1000);
    }); 
})();

このようにして$.get、サーバーが最後の呼び出しに応答してから 1 秒後に次の呼び出しが発生します。

正確な要件によっては、成功だけでなく失敗にも対応したい場合があります。

于 2013-09-04T15:43:35.023 に答える
2

setInterval順序が保証されていないため、おそらく良い考えではありません。したがって、X秒ごとにリクエストを送信する可能性があり、一度にすべて返されるか、まったく返されないか、ランダムな順序で返されます。コールバックで使用setTimeoutして、X 時間後に別のリクエストを開始できます。

function getStuff() {
    $.get('returnfunction.php', function(data) { 
        test=data;
        document.getElementById('t1').innerHTML=test; 
        setTimeout(getStuff, 5000); //Run this func again in 5 sec
    }); 
}
于 2013-09-04T15:43:46.790 に答える