此課程本來是要和小組的兄弟們共同分享的.由於時間的關系沒有如願以償,今天就在網上和大家共同學習了.由不妥的地方請指出.
1. ViewState
ViewState是asp.net中的一個特性,它用於把生成頁面要用的一狀態值保存在一個隱藏域中。當頁面被回傳到服務器時,服務器要解析,校驗和應用ViewState中的數據以還原頁面的控件樹。ViewState是一個非常有用的特性,它能持久化客戶端的狀態而不用cookie或者服務器的內存。大部分的服務器控件都是用ViewState來持久化那些在頁面中與用戶交互的元素的狀態值。•用ViewState會帶來一些負面的影響。首先,它加大的服務器的響應和請求的時間。其次,每次回傳時都增加了序列化和反序列化數據的時間。最後,它還消耗了服務器更多的內存。 •關閉指定頁面的ViewState;
可以通過WebConfig來禁用整個Web的ViewState
<configration> <system.web> <pages enableViewState=“false”/> </system.web> </configuration>
ViewState的編碼方式用的是Base64編碼
•EnableViewStateMac屬性表示:
如果頁從客戶端回發時,ASP.NET 應在頁的視圖狀態上運行消息驗證代碼 (MAC),則為 true;否則為 false。默認為 false。 •視圖狀態 MAC 是頁的視圖狀態在其發送到浏覽器時所保存到的隱藏變量的加密版本。如果為 true,則檢查加密的視圖狀態以驗證該視圖狀態在客戶端上是否尚未被篡改。如果主要考慮性能,則不要將 EnableViewStateMac 設置為 true。 如果頁面視圖被篡改頁面就不再使用這些狀態去恢復頁面.
2.頁面跳轉中的性能
請求的過程:
1)浏覽器aspx文件請求--->服務器執行--->遇到Response.Redirect語句->服務器發送Response.Redirect後面的地址給客戶機端的浏覽器--->浏覽器請求執行新的地址
2)浏覽器aspx文件請求->服務器執行->遇到Server.Transfer語句->服務器轉向新的文件
可以見Server.Transfer比Response.Redirect少了一次服務器發送回來和客戶端再請求的過程.
跳轉對象:
1)Response.Redirect可以切換到任何存在的網頁。
2)Server.Transfer只能切換到同目錄或者子目錄的網頁.