以前版本中monorail是不支援頁面快取的,在1.0 rc3版中加入了頁面快取的支援,有了頁面快取之後會對效能有很大的提公升。
主要是通過加入了乙個新的屬性
cacheattribute.cs,其實後台也是同樣使用了system.web下的快取處理的機制
(以前yok也寫過一篇
實現monorail頁面快取,他是通過編寫自己的快取類來實現的,效果也不錯)
使用方法很簡單,如下所示:
下面列出了主要的檔案,要使用快取只是在controller下紅色的一條語句
controller檔案的index方法:
注意上面紅色標示的**
我這裡只是列出了一種常用的方式,duration表示快取有效期是360秒,varybyparams指定當id或者name的引數值改變了才重新生成此頁面,否則不用呼叫此方法,直接使用快取中的頁面,httpcacheability定義可以參照msdn中的解釋:
nocache:設定 cache-control: no-cache 標頭。如果沒有欄位名,則指令應用於整個請求,且在滿足請求前,共享(**伺服器)快取必須對原始 web 伺服器強制執行成功的重新驗證。如果有欄位名,則指令僅應用於命名字段;響應的其餘部分可能由共享快取提供。
private:預設值。設定 cache-control: private 以指定響應只能快取在客戶端,而不能由共享(**伺服器)快取進行快取。
public:設定 cache-control: public 以指定響應能由客戶端和共享(**)快取進行快取。
server:指定響應僅快取在源伺服器上。與 nocache 選項相似。客戶機接收 cache-control: no-cache 指令,但文件是在原始伺服器上快取的。
serverandnocache:應用 server 和 nocache 的設定指示在伺服器上快取內容,而對伺服器以外的其他物件都顯式否定其快取響應的能力。
serverandprivate:指示響應只能在伺服器和客戶端快取。**伺服器不能快取響應。
測試結果(在index方法上設定斷點):
第一次呼叫:進入斷點,正常顯示測試結果
第二次呼叫:(頁面輸入值不變),不進入斷點,正常顯示測試結果
第三次呼叫:(頁面中年齡輸入值改變),不進入斷點,顯示結果中年齡值還是之前的值
第四次呼叫:(頁面中姓名輸入值改變),進入斷點,正常顯示測試結果
第五次呼叫:(6分鐘之後)),進入斷點,正常顯示測試結果
通過以上測試證明:monorail中的頁面快取是可以正常使用的,可以有效提高效能
實現機制簡單分析:
在每個action執行之後,判斷是否有cache屬性,如果有,就呼叫如下方法:
好像也蠻簡單的-_-,直接根據引數呼叫httpcachepolicy類中的相應方法就可以了
MonoRail學習筆記八 頁面快取的使用
以前版本中monorail是不支援頁面快取的,在1.0 rc3版中加入了頁面快取的支援,有了頁面快取之後會對效能有很大的提公升。主要是通過加入了乙個新的屬性 cacheattribute.cs,其實後台也是同樣使用了system.web下的快取處理的機制 以前yok也寫過一篇 實現monorail頁...
記憶體管理筆記八 頁面置換演算法
引言 在第七篇記憶體管理筆記,有介紹到分頁的記憶體管理。其克服了外部碎片 程式不能大於物理記憶體等缺點。本篇筆記將簡單介紹常見的頁面更換演算法思想。一 頁面需更換的原因 在交換系統下,乙個程式作為乙個整體載入到記憶體。因此,在執行時,無需從磁碟上載入任何東西。而分頁系統下,乙個程式的所有頁面並不一定...
Latex學習筆記 3 頁面設定
和任何文字類文件一樣,latex 文件中的頁面尺寸是高度可配置的。latex提供了 geometry 包用於頁面的長度和布局,例如紙張大小,邊距,腳注,標題,方向等。usepackage a4 total 以上引數確定文字區域的大小。請注意,大部分latex編譯器缺省會生成a4大小的文件。latex...