.NET中Application,Session,Cookie,ViewState,Cache,Hidden 緩存機制

Application

1.         Application用來保存所有用戶共用的信息

2.         Asp時代,如果要保存的數據在應用程序生存期內不會或者很少發生改變,那麼使用Application是理想的選擇。但是在Asp.net開發環境中我們把類似的配置數據放在Web.config中。

3.         如果要使用Application 要注意的是所有的寫操作都要在Application_OnStart事件中完成(global.Asax),儘管可以使用Application.Lock()避免了衝突,但是它串行化了對Application的請求,會產生嚴重的性能瓶頸。

4.         不要使用Application保存大數據量信息

5.         代碼:Application[“UserID”]=”test”;

        String UserName=Application[“UserID”].ToString();

Session

1.         Session用來保存每一個用戶的專有信息

2.         Session的生存期是用戶持續請求時間加上一段時間(一般是20分鐘左右)

3.         Session信息是保存在Web服務器內存中的,保存數據量可大可小

4.         Session超時或者被關閉將自動釋放數據信息

5.         由於用戶停止使用應用程序之後它仍在內存中存留一段時間,因此這種方法效率較低

6.         代碼:Session[“UserID”]=”test”;

        String UserName=Session[“UserID”].ToString();

Cookie

1.         Cookie用來保存客戶瀏覽器請求服務器頁面的請求信息

2.         我們可以存放非敏感的用戶信息,保存時間可以根據需要設置

3.         如果沒有設置Cookie失效日期,它的生命週期保存到關閉瀏覽器爲止

4.         Cookie對象的Expires屬性設置爲MinValue表示永不過期

5.         Cookie存儲的數據量受限制,大多數的瀏覽器爲4K因此不要存放大數據

6.         由於並非所有的瀏覽器都支持Cookie,數據將以明文的形式保存在客戶端

7.         代碼:Resopnse.Cookies[“UserID”]=”test”;

        String UserName= Resopnse.Cookies [“UserID”].ToString();

ViewState

1.         ViewState用來保存用戶的狀態信息,有效期等於頁面的生命週期

2.         可以保存大量數據但是要慎用,因爲會影響程序性能

3.         所有的Web服務器控件都是用ViewState在頁面PostBack期間保存狀態

4.         不需要則關閉 @page 裏面設置EnableViewState=false

5.         代碼:ViewState[‘”ID”]=”yiner”;
   String ID =ViewState[“ID”].ToString();

Cache

1.         Cache用於在Http請求期間保存頁面或者數據

2.         Cache的使用可以大大的提高整個應用程序的效率

3.         它允許將頻繁訪問的服務器資源存儲在內存中,當用戶發出相同的請求後
服務器不是再次處理而是將Cache中保存的數據直接返回給用戶

4.         可以看出Cache節省的是時間服務器處理時間

5.         Cache實例是每一個應用程序專有的,其生命週期==該應用程序週期
應用程序重啓將重新創建其實例

6.         注意:如果要使用緩存的清理、到期管理、依賴項等功能必須使用Insert 或者Add方法方法添加信息

7.         代碼:Cache[‘”ID”]=”yiner”;或者Cache.Insert(“ID”,”test”);
   String ID =Cache[“ID”].ToString();

Hidden

1.         Hidden控件屬於Html類型的服務器控件,始終處於隱藏狀態

2.         每一次提交的時候它會和其他服務器控件一起提交到服務器端

3.         代碼如下:Hidden.Value=”king”;
string id=Hidden.Value; 要使用Runat=server


轉自: http://blog.sina.com.cn/s/blog_75699b6201011px2.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章