MVC3快取之一 使用頁面快取

2021-09-06 02:40:44 字數 1948 閱讀 4573

在以前的webform的開發中,在頁面的頭部加上outputcache即可啟用頁面快取,而在mvc3中,使用了razor模板引擎的話,該如何使用頁面快取呢?

在mvc3中要如果要啟用頁面快取,在頁面對應的action前面加上乙個outputcache屬性即可。

我們建乙個demo來測試一下,在此demo中,在view的home目錄下的index.cshtml中讓頁面輸入當前的時間。

@doctype html

>

<

html

>

<

head

>

<

title

>

index

title

>

head

>

<

body

>

<

div>

<

h2>

h2>

div>

body

>

html

>

在controllers中新增對應的action,並加上outputcache屬性。

[handleerror]

public

class

homecontroller : controller}

重新整理頁面即可看到頁面做了乙個10秒的快取。當頁面中資料不是需要實時的呈現給使用者時,這樣的頁面快取可以減小實時地對資料處理和請求,當然這是針對整個頁面做的快取,快取的粒度還是比較粗的。

可以通過設定快取的location屬性,決定將快取放置在何處。

location可以設定的屬性如下:

· any

· client

· downstream

· server

· none

· serverandclient

location的預設值為any。一般推薦將使用者側的資訊儲存在client端,一些公用的資訊儲存在server端。

加上location應該像這樣。

[handleerror]

public

class

homecontroller : controller

varybyparam可以對快取設定快取依賴條件,如乙個產品詳細頁面,可能就是根據產品id進行快取頁面。

快取依賴應該設定成下面這樣。

在mvc3中對

輸出快取進行了改進,outputcache不需要手動指定varybyparam,會自動使用action的引數作為快取過期條件。(感謝」散客遊「提醒)

[handleerror]

public

class

homecontroller : controller

} 當我們需要對多個action進行統一的設定時,可以在web.config檔案中統一配置後進行應用即可。

在web.config中配置下caching節點

<

caching

>

<

outputcachesettings

>

<

outputcacheprofiles

>

<

add 

name

="cache1hour"

duration

="3600"

varybyparam

="none"

/>

outputcacheprofiles

>

outputcachesettings

>

caching

>

那麼在action上使用該配置節點即可,這樣的方法對於統一管理配置資訊比較方便。

[handleerror]

public

class

homecontroller : controller

}

MVC3快取(二 頁面區域性快取

mvc3中,新增了乙個叫做partial page的東西,既可以對載入到當前頁面的另外的乙個view進行快取後輸出,當頁面動態輸出時,對需要快取的區域性進行快取處理。建立前端頁面 在對應的controller中新增對應的action public actionresult partialcache ...

MVC3快取之二 頁面快取中的區域性動態

mvc中有乙個post cache substitution的東西,可以對快取的內容進行替換。示例,我們在model層中定義乙個隨機返回新聞的方法。using system using system.collections.generic using system.web namespace pub...

MVC3快取之二 頁面快取中的區域性動態

mvc中有乙個post cache substitution的東西,可以對快取的內容進行替換。示例,我們在model層中定義乙個隨機返回新聞的方法。using system using system.collections.generic using system.web namespace pub...