0

eコマースのMVC4プロジェクトがもうすぐ終了します。outputcache で sqldependecy を使用します。しかし、これの最善の方法は何ですか?商品詳細ページ ? 商品一覧のあるカテゴリページは?フィルター ページ ? ブラブラ

キャッシングについて教えてください。(私のプロジェクトではlinq to sqlでSQLサーバーを使用しています)例;

[OutputCache(Duration = Int32.MaxValue, SqlDependency = "Demo:product")]

public ActionResult getproducts(int id, int lastid,string filter) {

パラメータを使用してSQLからデータを取得します。

}

それは正しいですか?または、クエリデータをbla blaをキャッシュする必要がありますか? ページングに使用される lastid。フィルター データのフィルター パラメーター。id はカテゴリ ID を意味します

4

1 に答える 1

0

最初から始めましょう。ウェブショップを最適化したいので、キャッシュメカニズムが必要だと思います。OutputCache を使用することを選択したのは、おそらく、使いやすく、すぐに使用できるためです。ご存じのとおり、OutputCache はサーバーからの応答をキャッシュするため、SQL クエリのキャッシュや一般的なデータには直接接続されません。したがって、まず最初に、本当に必要なキャッシュの種類を検討することをお勧めします。出力キャッシュ (System.Web.Configuration.OutputCacheSection にあります)、データ キャッシュ (System.Web.Caching.Cache にあります)、またはその両方ですか?

OutputCache を選択したとします。サーバーからの応答を変更できるものはすべて、キャッシュ パラメータとして送信する必要があります。したがって、製品ページの場合、これはおそらく少なくとも ProductId であり、CategoryPage (ProductListPage) の場合、これはおそらく CategoryId、PageId、PageSize、いくつかの並べ替えパラメーター、フィルター パラメーター (フィルタリングを使用する場合) などになります。

考慮する必要があるパラメーターが多いほど、考えられるすべてのパラメーターの組み合わせをキャッシュするのに時間がかかります。例として、Product Page に OutputCaching を使用しますが、特にフィルター、ページング、並べ替えなどを使用する場合は、CategoryPage (ProductListPage) にこれを使用することを検討します。

于 2014-01-23T15:13:15.217 に答える