1

次のコードで無限スクロールを設定しました。

$(window).scroll(function () {
    if ($(window).scrollTop() >= $("#home_content").height() - $(window).height()) {
        if (isLastPage) {
            foo();
        } else {
            bar(); // JQuery AJAX call
        }
    }
});

これは document.ready(); 内にあります。サーバーが最後のページのフラグを送信すると、ajax 呼び出しは発生しません。これは、通常のシナリオでは正常に機能します。しかし、ページの下部から F5(更新) を押すと、2 つの同時スクロール イベントが発生し、フラグがバイパスされ (フラグが設定される前に 2 番目の呼び出しが発生するため)、重複したデータが読み込まれます。

私が知っている唯一のことは、それが document.ready() 関数の最後に発生することです。誰でも、何か考えはありますか??

前もって感謝します。

編集

これ以外に関連するコードはあまりありません。

そして、これはFF 17でのみ発生します.IE 9では、高速スクロールダウンを行うと、同じスクロールが2回発生します

4

2 に答える 2

1

完全なコードを確認できないため、これは単なる回避策ですが、次の方法が役立つ場合があります。

var timeout;

$(window).scroll(function(){
      clearTimeout(timeout);
  timeout = setTimeout(function(){
      if  ($(window).scrollTop() >= $("#home_content").height() - $(window).height()){
                if (isLastPage){
                    foo();
                }else{
                    bar();//AJAX call
                }
            }
  },0);
});
于 2013-01-10T10:20:17.787 に答える