ASP.NET OutputCache 機制筆記

2021-05-15

筆記 ASP.NET 如何藉由 OutputCache 使用快取機制,讓伺服器的資源運用更有效率且提升使用者的使用體驗。

logo

說明

藉由設定快取,可以減少伺服器的資源耗用,尤其是伺服器向資料庫存取資料的大量操作,這一點可以藉由設定 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 的方式呼叫需要即時異動的版面,更進一步可以做到「網頁發生異動,請重新整理頁面」的提示。

網頁異動提示

待實作

參考資料

相關連結

ASP.NET MVC 從無到有打造一個應用系統

Visual Studio 入門教學