2017-06-15 9 views
0

このコードを使用すると、複数の時間ajaxを呼び出すと4-5時間に同じデータが出力されます。これを解決するために私を助けてください。流れるコードをご覧ください。ajax自動ロード(複数の呼び出しと同じデータを取得)

$(window).scroll(function() { 
    if ($(document).height() - 50 <= $(window).scrollTop() + $(window).height()) { 
     sendData(); 
    } 
}); 

上記のコードは、各単一のスクロール一瞬実行したとき、条件リターンが真:AJAX問題ではないのです

<script> 
    $(document).ready(function() { 
     $(window).scroll(function() { 
      if ($(document).height() - 50 <= $(window).scrollTop() + $(window).height()) { 
       sendData(); 
      } 
     }); 

     function sendData() { 
      var offset_val = $('#offset_val').val(); 
      $.ajax({ 
       url: '', 
       type: 'POST', 
       data: {offset_val: offset_val}, 
       dataType: "json", 
       success: function (response) { 
        if (response.status) { 
         $('#load_data').append(response.all_data); 
         $('#offset_val').val(response.offsets); 
         setTimeout(function() { 
          //$('.animation_image').hide(); 
         }, 600); 
        } else { 
         $('#no-data-found').html(response.all_data); 
         // $('.animation_image').hide(); 
        } 
       } 
      }); 
     } 

    }); 

</script> 
+0

呼び出しごとにブラウザのキャッシュを削除してみましたか?ブラウザのキャッシュを削除すると問題が解決したら、キャッシュを無効にする要求にタイムスタンプのようなものが必要です – samAlvin

+0

データを変更するにはどうすればよいですか?オフセットごとに異なる出力がありますか? – showdev

答えて

1

は、次の行を確認してください。そのため、1回のスクロールに対する複数のリクエストが開始されています。

+0

この問題を解決するにはどうすればよいですか? – Pervez

+0

@Pervezこれは問題が発生している場合、["スロットル"または "デバウンス"](https://stackoverflow.com/questions/25991367/difference-between-throttling機能のデバウンス)を行い、スクロールイベントがそれを継続的に実行しないようにします。 – showdev

関連する問題