ASP.NET OutputCache 機制筆記
2021-05-15
筆記 ASP.NET 如何藉由 OutputCache 使用快取機制,讓伺服器的資源運用更有效率且提升使用者的使用體驗。
說明
藉由設定快取,可以減少伺服器的資源耗用,尤其是伺服器向資料庫存取資料的大量操作,這一點可以藉由設定 SQL Server Profiler 來觀察。
而設定快取後,所有的使用者都會看到相同的結果,因此適用的情境是網頁不會經常性改動的情境,而如果在快取時間內有異動,可以藉由 RemoveOutputCacheItem
的方式來提前清除快取,而清除快取後第一個渲染出的頁面,又將作為新的快取時間中的回應結果。
public ActionResult Refresh()
{
var action = Url.Action("Index", "Home");
HttpContext.Response.RemoveOutputCacheItem(action);
System.Threading.Thread.Sleep(1000);
return RedirectToAction("Index");
}
[OutputCache(Duration = 300)]
public ActionResult Index()
{
return View();
}
VaryByParam
如果網頁的內容有區別使用者的需求,可以藉由 VaryByParam 參數的方式來進行設定。另一種方式是另外設定不進行 OutputCache 的 Action,讓 Client 端用 Ajax 的方式呼叫需要即時異動的版面,更進一步可以做到「網頁發生異動,請重新整理頁面」的提示。
網頁異動提示
待實作