2016-08-13 8 views
0

私はウェブプログラミングにとって非常に新しいです。私は基本的に長い項目のリストを表示するウェブサイトを作っています。しかし、リストは1ページに収まらないほど長いので、ページネーションを使用することにしました。バックエンドを処理するPHPでページネーションをデザインする方法は?

現在、私のPHPコードはデータベースからすべてのデータを取得し、 htmlフロントエンド(jQuery ajax)がブラウザーに表示されます。

私の質問は、サイトロード時($(document).ready())にすべてのデータを取得する必要がありますか、ユーザーが特定のページを表示するよう要求したときにデータを読み込む必要がありますか?どちらが優れたデザインですか?最後に、ページネーションのバックエンド設計に関する例はどれですか?

+1

最良の方法は、ユーザーがデータを要求したときにデータを読み込むことです。最初のリクエストですべてのデータをロードすると、データの一部だけをロードするときよりもロードが遅くなります。また、データ転送とサーバー負荷を節約できます。 – quentino

答えて

0

おそらく、パフォーマンス上の理由から、データベースからすべてのデータを一度に読み込むのではなく、特定のページを埋め込むために必要なデータだけを読み込むとします。バックエンド側で

、次のようなMySQLのクエリ(私はMySQLを使用すると思います)であることを行うことができます。

numItemsPerPageは、ページあたりitensの数を与え、 pageStartPositionはの開始位置を与える
SELECT fields FROM tables WHERE condition 
    LIMIT numItemsPerPage OFFSET pageStartPosition 

そのページのアイテム(= numItemsPerPage * (pageNumber - 1)、ページ1から始めると仮定します)。次に、ページpageNumberのデータのAJAXリクエストの後、このデータをページに送ります。

関連する問題