順序付け/プロパティを変更できるページ分割された検索結果をキャッシュするためのベストプラクティスは何ですか?
私のアプリケーションでは、誰かが最新の20のディスカッションスレッド(10,000のうち)を見たいとします。servlet
XML、JSONとしてディスカッションスレッドテーブルから最初の20レコードを取得するために、を介してデータベースにリクエストが送信されます。その後、次の20を表示したい場合、結果の次のページに移動し、次のロットを取得するための別の要求を開始します(制限とオフセット= 20など)。
サーバーの負荷とクライアント待機を減らすために、結果の前のページをキャッシュしたいと思います。ただし、2つの質問があります。
- 結果が表示されるテーブルは、複数の属性(つまり、thread-creation-date、thread-author、last-post-date)で並べ替えることができます。これは、「最初の20件の結果」のような文は、コンテキストなしでは意味をなさないことを意味します(つまり、私たちは何によって注文するのか)。それでは、フロントエンドはどのようにしてバックエンドに既にロードしたものと通信しますか?最初に考えたのは、各結果にIDを使用することでしたが、後続のリクエストでIDをサーバーに送り返す(およびそれらに基づいて結果をフィルタリングする)のは、すべてを盲目的に送り返すのと同じくらい時間がかかります。これどうやってするの?
- 以前に返された結果(つまり、最新のポスト日付)の属性が変更された場合はどうなりますか?次に、各結果をチェックインして、ページインされてからサーバー側で変更されているかどうかを確認する方法が必要です。これを行うにはどうすればよいですか?