2011-11-09 6 views
1

私は遅延読み込みイメージにプラグインがあることを知っています。私はクーポンコードサイトを持っています。私のDBの靴のカテゴリーページには、500個のクーポンがあります。明白な理由から私は500をすべて表示したくありません。私は最初に20を表示したいだけで、ユーザーがページをスクロールし続けると、より多くのクーポンが読み込まれます。これをどうやってやりますか?facebookとtwitter(無限スクロール)のようなmysql dbからのアイテムの読み込みを遅らせる方法

EDIT:私はajaxコールが機能しています。ここで私が使用しているコードは次のとおりです。

<script type="text/javascript"> 
     $(window).scroll(function(){ 
      if ($(window).scrollTop() >= $(document).height() - $(window).height() - 10) { 
       $('div#loadmoreajaxloader').show(); 
       $.ajax({ 
        url: "loadmore.php", 
        success: function(html){ 
         if(html){ 
          $("#postswrapper").append(html); 
          $('div#loadmoreajaxloader').hide(); 
         }else{ 
          $('div#loadmoreajaxloader').html('<center>No more posts to show.</center>'); 
         } 
        } 
       }); 
      } 
     }); 
</script> 

私が今持っている問題は、私はスクロールデータベース毎回から右の行を取得する方法ですか?最初のページロードで

私はこれをやっている:

SELECT * FROM tblCoupons LIMIT 0,20 

mysqlのコールがloadmore.phpファイルにどのように見えますか?私は離れていくよう願っインターネット上の一つの特徴だそれなるほど...

答えて

6

....私は何とかカウンタをインクリメントする必要があると思います...しかし、ここでは、ページの読み込みでdeal-

だ、あなたがつかみます100の結果のように、または多くの場合、それらを容器に吐き出す。ロード時に、jqueryを使用してサイトのコンテンツ領域の高さを記録します。何を照会するかを知るように開始インデックスを設定する(明らかにAjax呼び出しで関連するページデータを送信する)、画面サイズを取得してスクロールを待つ。スクロールでは、scrollTopのオフセットとウィンドウのサイズをチェックして、ユーザーが妥当なしきい値(この場合は約100ピクセルの許容値)内のページの下部にいるかどうかを確認します。 ajax呼び出しを行い、結果を追加します。

var screen_height = $('body').height(); 
var cur-y = $(window).scrollTop(); 
var screen = $(window).height(); 
var cur_index = 0; 

そして、基本的には... ...身体に

$('body').scroll(function(){ 
    if($(window).scrollTop() + screen >= (screen_height - 100)) 
    { 
     // make an ajax call to your server and fetch the next 100, then update 
     //some vars 
     $.ajax({ 
      url: "your_script.php", 
      data: {cur_index:cur_index}, 
      success: function(){ 
       cur_index += 1; 
       screen_height = $('body').height(); 

       // append content to your container 

      } 
     }); 
    } 
}); 

をスクロールリスナーを適用します。 これはコピー/貼り付けを目的としたものではありません。過去の私のやり方に関する一般的なガイドのようなものです。 .scroll()はスクロールの動きをリッスンするので、これは目的のイベントごとに1回のみ発生するようにプロビジョニングを設定する必要があります。

何らかの形で役立つことを願っています。

+0

これは実際にはかなり面白いです:どうしてそれがなくなるはずだと思いますか? –

+0

@ 3axap Joe - それは不本意な行動だから。あなたは常にそれがロードされることを知っているとは限りません、要素が少しジャンプするかもしれない、それはブラウザの動作などの瞬間的な遅れを引き起こす可能性があります。私はWeb企業のために働くと、みんなが流行りの言葉のように怠け者のロードを望んでいたようです。怠惰な負荷でアナリティクスイベントを送信して、それをトリガーするほどスクロールした人の数が少なく、スクロールしてさらに多くのトリガーを発生させる方法を確認できます。開発費と必要な準備金のために、3ページ分を読み込んだら記事をクリックした後、中断した場所に戻ってくることはありませんでした。予算に値するものではありません –

+0

実際はあなたが正しいかもしれません。結局のところ、Googleは無限の検索結果をロールバックしていません...理由があります。まれな言語のオンライン辞書に取り組んでいて、少数の文字しか含まない検索では多くの情報が得られるため、私は尋ねました。それに対処する1つの方法は、レイジーローディングを行うことです。もう1つはページに分割し、もう1つは何もしないことです。これはクライアントにとって処理が難しい巨大なページを生成するかもしれません。私はWeb標準を最初に置くと、どのような方法が最も正しいのかというと、私はちょっと壊れています。人々は非常に異なる意見を持っています... –

関連する問題