0

「結果」divをajax&setInterval関数で自動更新したい。

しかし、1つの問題があります。500msで自動更新したいのですが、500msを超えるajaxロードが必要な場合があります。この場合、問題が発生します。ajaxの読み込み時間が750ミリ秒、間隔が750ミリ秒(または500ミリ秒より長い場合)、それ以外の場合は500にしたいと思います。これを行うにはどうすればよいですか?

    var refreshId = setInterval(function()
{
    var number=$("#number").html();

    $.ajax({
    type: 'GET',
    url: 'ajax.php',
    data: 'num='+number,
    success: function(ajaxResult) {
      $('#result').html(ajaxResult);

    }
        });

    if(number<100){
        number++;
        $("#number").html(number);
        }

}, 500);
4

2 に答える 2

1

成功関数内の条件を試してください。

   success: function(ajaxResult) {
      $('#result').html(ajaxResult);
      if(number<100){
        number++;
        $("#number").html(number);
        }
    }
于 2012-05-05T18:06:37.463 に答える
1

setTimeoutの代わりに使用しsetIntervalます。ajax 応答関数内にタイムアウト関数を設定すると、サーバー呼び出しの同期に問題が発生しなくなります。

    (function pollStep(){
        var number=$("#number").html();   
        $.ajax({
           type: 'GET',
           url: 'ajax.php',
           data: 'num='+number,
           success: function(ajaxResult) {
               $('#result').html(ajaxResult);
               setTimeout(pollStep, 500);   
           }
        });
        if(number<100){
            number++;
            $("#number").html(number);
        }
     })();
于 2012-05-05T18:26:14.263 に答える