0

SQL データベース テーブルからデータを取得してロードするページがあります。スクロール時にデータをロードする必要があります。データベースのテーブルからデータを取得しているため、既にロードされている行がわかりにくく、それ以外のデータをロードしている。ウィンドウの高さに基づいてスクロールダウンしてより多くのデータを表示できる方法はありますか?オーバーフローを設定して本体またはメインコンテナをスクロールする以外に? どんな助けでも大歓迎です。ありがとう。

4

1 に答える 1

0

PHPスクリプトに返すオフセットを伝える状態変数を追跡できます。

var offset = 0;
var loading = false;

$(window).on('scroll', function(){

    if($('#element').offset().top >= ($(window).scrollTop() - $(window).height()))
    {
        loading = true;
        $.ajax({
            //all your ajax settings here
            data: {offset: offset}
            success: function(data){
                // add data to dom here
                loading = false;
                offset += 1;
            }
        });
    }

});

このようにして、オフセットをスクリプトに渡し、この数値に関連するデータを返しますが、それを解釈することを選択します。

mysql で使用されているオフセット。言語を指定しなかったため、php の例を示します。

$limit = "0, 20";
if(isset($_POST['offset']))
{
    // obviously you should sanitize this, but for example we
    // ignore that for now.

    $limit = ($_POST['offset'] * 20) .", 20";
}

$sql = "SELECT * FROM `table` ORDER BY `date` DESC LIMIT $limit";
// run your query and echo the results

渡されたオフセットは、次のデータのチャンクを取得するようにクエリを変更するだけです。JavaScript では、成功時にこの数値をインクリメントするので、次にウィンドウが一番下に達したときに、次のオフセットを php に渡し、次のインクリメントを返します。ブログ エントリや画像など、行を持つある種のデータを返すと仮定して、任意の数値 20 を使用します。

于 2013-04-23T00:02:40.703 に答える