當我使用自定義緩存(VarByCustom)時,有什麼辦法可以有多個緩存頁面嗎?如何擁有ASP.Net Webforms的多個緩存版本?
對於例如,如果我實現一個緩存自定義變量瀏覽器老虎鉗,我會在全球實現功能如下
public override string GetVaryByCustomString(HttpContext context, string custom)
{
if (custom == Request.Browser.Version)
{
return Request.Browser.Version;
}
else
{
return base.GetVaryByCustomString(context, custom);
}
}
內部控制
[PartialCaching(500000)]
public partial class WebUserControl : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
this.CachePolicy.Duration = new TimeSpan(0,5,0);
this.CachePolicy.Cached = true;
this.CachePolicy.SetVaryByCustom(Request.Browser.Version);
lblDate.Text = DateTime.Now.ToShortDateString();
lblTime.Text = DateTime.Now.ToLongTimeString();
}
}
在這種情況下,我想有多個緩存關於以下情形的頁面;
- 在Firefox〜頁打開頁面緩存和相同的Firefox瀏覽器返回到瀏覽器
- 打開同一個頁面〜緩存的頁面被作爲響應
- 打開同一個頁面上的Chrome〜頁面緩存和回報因爲瀏覽器是不同的瀏覽器。在Chrome瀏覽器
打開同一個頁面〜緩存的頁面再次發送的響應
打開同一個頁面上的Firefox〜由於頁面緩存瀏覽器,這將標識爲一個變化,它會爲Firefox再次緩存,但在這種情況下,我希望在第一步中爲Firefox緩存頁面,而不是再次緩存。
我在以前的職位抱歉,我已經包括錯誤的代碼塊,我在這裏沒有使用瀏覽器,而不是我有我的自己的變量。它可以是瀏覽器語言或版本。在這種情況下,就像上述步驟一樣 –