ページネーションを処理するのに最適なものは何ですか? サーバー側ですか、それとも JavaScript を使用して動的に実行していますか?
私はajaxに重きを置いてデータを動的に取り込むプロジェクトに取り組んでいるので、domを使用するJavaScriptのページネーションシステムに取り組んできましたが、すべてを処理する方が良いと思い始めていますサーバ側。
みんなの感想は?
ページネーションを処理するのに最適なものは何ですか? サーバー側ですか、それとも JavaScript を使用して動的に実行していますか?
私はajaxに重きを置いてデータを動的に取り込むプロジェクトに取り組んでいるので、domを使用するJavaScriptのページネーションシステムに取り組んできましたが、すべてを処理する方が良いと思い始めていますサーバ側。
みんなの感想は?
正しい答えは、優先順位とページ分割するデータ セットのサイズによって異なります。
サーバー側のページネーションは次の場合に最適です。
クライアント側のページネーションは次の場合に最適です。
そのため、主に表面的な理由でページ付けを行っている場合は、クライアント側で処理する方が理にかなっています。また、初期ロード時間を短縮するためにページネーションを行う場合は、サーバー側が当然の選択です。
もちろん、Ajax を使用して後続のページをロードする場合、後続のページのロード時間に対するクライアント側の利点は減少します。
クライアント側でそれを行うと、ユーザーは最初に必要のないすべてのデータをダウンロードすることになり、ページネーションの主な利点が失われます。
このような種類の AJAX アプリでこれを行う最善の方法は、AJAX に次のページのサーバーを呼び出しさせ、クライアント側のスクリプトを使用して現在のページを更新することです。
大きなページと多数のページがある場合は、AJAX を介してサーバーからページをチャンクで要求する方が適切です。したがって、リクエスト URL に基づいて、サーバーにページ付けを行わせます。
また、ユーザーが表示する可能性が高い次の数ページをプリフェッチして、インターフェイスの応答性を高めることもできます。
ページ数が少ない場合は、事前にすべてを取得して、クライアントでページ付けする方が適切な選択になる場合があります。
データサイズが小さい場合でも、サーバー側のページネーションが最適です。Web アプリケーションがさらに拡張されても、後で心配する必要はありません。
そして、より大きなデータサイズの場合、答えは明らかです。
サーバー側 - 現在のビューに必要なだけのコンテンツをクライアントに送信します。
制限のある実際の世界では、サーバー側でページングして、データの送信に関連するすべてのリソースを節約します。また、サーバーは、巨大なページを要求する悪意のある/機能不全のクライアントから自身を保護する必要があります。
そのコードが順調に進んだら、クライアントに「スマート」を追加して「次の」ページと「前の」ページを取得し、それをメモリに保持します。ユーザーが次のページに移動したら、キャッシュを更新します。
クライアント ソフトウェアがこの種のページ キャッシュを行う場合は、データがどの程度古くなるか (変更される可能性が高いか) を考慮し、キャッシュされたデータ ページがまだ有効であることを確認する必要があるかどうかを検討してください。2 分以上経っている場合は、再リクエストしてください。「ダーティ」フラグが含まれている可能性があります。そんな感じ。これがお役に立てば幸いです。:)
JavaScript がすべてのデータをメモリに保持し、一度に 1 ページを表示するということですか? それとも、AJAX を使用して、必要に応じてサーバーから各ページをダウンロードしますか?
後者の場合は、並べ替えについても考える必要があるかもしれません。JavaScript を使用してソートすると、一度に 1 ページしかソートできず、あまり意味がありません。したがって、並べ替えはサーバー上で行う必要があります。
私はサーバー側のページネーションを好みます。ただし、それを実装するときは、SQL を適切に最適化していることを確認する必要があります。たとえば、私は MySQL を信じています。LIMIT オプションを使用するとインデックスが使用されないため、SQL を書き直してインデックスを適切に使用する必要があります。
Gマン