3

私たちのサイトには、住所タイプの説明、州、一般的なコメント、ブール型の値、性別などのフィールドの定数のリストが多数あります...

このデータをすべてのページで利用できるようにしたいと考えています。少なくとも、読み込まれているページに関連するリストで利用できるようにしたいと考えています。

私たちのアーキテクチャは、MVC4 コントローラー アクションにヒットするクライアント側の HTTP および Ajax リクエストで構成され、これらのアクションは Web API を照会し、データベースなどからデータを取得します。

http://www.asp.net/web-forms/tutorials/data-access/caching-data/caching-data-at-application-startup-csといくつかのクライアント側キャッシュを使用することにしました。

クライアントでこれらの値をより少ないオーバーヘッドで使用できるようにするために、他にできることはありますか? コントローラー メソッドでキャッシュする必要があります (基本的に HttpRuntime.Cache の内容をキャッシュしますか?

ありがとう

4

1 に答える 1

3

キャッシングについてあなたが持っているアイデアは両方とも良いアイデアです。たとえば、頻繁に変更されないルックアップ リスト データや、ユーザー ID によって一貫性のあるリストと予測できるデータは、すべてキャッシングの候補です。

クライアント側のキャッシュでは、出力キャッシュを使用しているのか、それとも何か他のものを使用しているのかわかりませんが、必要に応じて出力キャッシュを調べます

    [OutputCache(Duration = int.MaxValue, VaryByParam = "id")]
    public ActionResult Details(int id)

出力キャッシュに関する 2 つの小さなポイント

  1. VaryByParam を使用してみてください。これにより、データが変更された場合に、キャッシュされた出力が古くならないことが保証されます
  2. 適切な期間を選択するようにしてください。そうしないと、アプリ プールがリサイクルされた場合にのみキャッシュが更新されます。

出力キャッシュの詳細については、 http://www.asp.net/mvc/tutorials/older-versions/controllers-and-routing/improving-performance-with-output-caching-cs を参照してください。

于 2013-11-27T09:56:42.457 に答える