製品ページのパフォーマンスを向上させるためにキャッシュを実装することにしました。
各ページには、製品の画像が大量に含まれています。
Razorビューで次のコードを作成しました。
@{
var productID = UrlData[0].AsInt();
var cacheItemKey = "products";
var cacheHit = true;
var data = WebCache.Get(cacheItemKey);
var db = Database.Open("adldb");
if (data == null) {
cacheHit = false;
}
if (cacheHit == false) {
data = db.Query("SELECT * FROM Products WHERE ProductID = @0", productID).ToList();
WebCache.Set(cacheItemKey, data, 1, false);
}
}
次のコードでデータを使用しています。
@foreach (dynamic p in data)
{
<a href="~/Products/View/@p.ProductID"
<img src="~/Thumbnail/@p.ProductID"></a>
}
キャッシングコードはうまく機能しますが、新しいクエリ文字列パラメーターを渡す(ページのバージョンを変更する)と、ブラウザーでの結果は宣言されたキャッシング時間と同じになります。
ページのすべてのバージョンをキャッシュする方法は?
ありがとう
オレグ