頁面級快取 OutputCache

2022-03-23 14:22:32 字數 1554 閱讀 9232

最近要用到快取,所以才去找了相關資料,開始在乙個使用者控制項頭加入@ outputcache指令,發現第一次進入頁面是對了,第二次再進入時就出錯了。鬱悶……

這裡@ outputcache的一些引數說明:

以宣告的方式控制 asp.net 頁或頁中包含的使用者控制項的輸出快取策略。有關輸出快取的更多資訊,請參見 asp.net 快取功能。

<%@ outputcache duration="#ofseconds" location="any | client | downstream | server | none" shared="true | false" varybycontrol="controlname" varybycustom="browser | customstring" varybyheader="headers" varybyparam="parametername" %>

一、屬性

duration

頁或使用者控制項進行快取的時間(以秒計)。在頁或使用者控制項上設定該屬性為來自物件的 http 響應建立了乙個過期策略,並將自動快取頁或使用者控制項輸出。

注意   該屬性是必需的。如果未包含該屬性,將出現分析器錯誤。

location

outputcachelocation 列舉值之一。預設值為 any。

警告   包含在使用者控制項(.ascx 檔案)中的 @ outputcache 指令不支援此屬性。

shared

為頁輸出快取設定值與通過 httpresponse.cache 屬性操作 httpcachepolicy.setexpires 和 httpcachepolicy.setcacheability 方法相同。如果在建立使用者控制項時設定 varybyparam 屬性,可實現該控制項的部分頁快取。

如果 web 窗體頁要求使用者檢視授權,則輸出快取將 cache-control http 標頭設定為 private。有關所有這些主題的詳細資訊,請參見快取 asp.net 頁。

如果將 shared 屬性設定為 true,則快取的使用者控制項輸出可以被多個 web 窗體頁訪問。如果不設定為 true,預設行為是為包含使用者控制項的每一頁快取使用者控制項輸出的乙個版本。通過啟用 shared 屬性,可以潛在地節省大量的記憶體。有關詳細資訊,請參見快取 asp.net 頁的某些部分。

三、示例

下面的示例說明了如何設定頁或使用者控制項進行輸出快取的持續時間。

<%@ outputcache duration="100" varybyparam="none" %>

下乙個示例說明了如何指示輸出快取來對頁或使用者控制項進行快取,此快取處理是根據來自窗體的 post 或來自查詢字串的位置和計數窗體引數進行的。每個收到的具有不同位置或計數引數(或兩者)的 http 請求都進行 10 秒的快取處理。帶有相同引數值的任何後繼請求都將從快取中得到滿足,直至超過輸入的快取期。

<%@ outputcache duration="100" varybyparam="location;count" %>

頁面快取 url快取 物件快取

頁面通用邏輯 當使用者的請求到達後端時,先去redis中查詢快取,如果快取中找不到,則進行資料庫邏輯操作,然後渲染,存入快取並返回給前端!如果在快取中找到了則直接返回給前段。儲存在redis快取中的頁面需要設定時間,根據資料變化是否頻繁進行調整,一般都是1 2min。這種快取一般用於不會經常變動的資...

vue 刪除頁面快取 Vue實現頁面快取

在 使用vue開發時,當進行頁面之間的切換時,上乙個頁面將會被銷毀。但是當我們想節省效能以及保留使用者上次操作的結果或避免ajax重複請求的時候,需要把某些特定的頁面快取下來。在vue中,提供了內建元件keep alive 包裹動態元件時,會快取不活動的元件例項,而不是銷毀它們。和相似,是乙個抽象元...

頁面快取與資料快取

2018 1 25 ubuntu裡pwd檢視當前目錄什麼是redis?redis的全稱為remote dictionary server,即遠端資料服務,快取資料庫是由義大利人開發的一款記憶體高速,是用c語言編寫的,資料模型為key value,它支援豐富的資料型別,比如string,list,ha...