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