ASP.NET保存信息总结(Application、Session、Cookie、ViewState和Cache等)
http://hi.baidu.com/xkplt/blog/item/c13e79097f579ea62fddd45f.html
?
以下是關于ASP.NET中保存各種信息的對象的比較,理解這些對象的原理,對制作完善的程序來說是相當有必要的(摘至互聯網,并非原創--xukunping) 在ASP.NET中,有很多種保存信息的對象.例如:APPlication,Session,Cookie,ViewState和Cache等,那么它們有什么區別呢?每一種對象應用的環境是什么?
??? Application用于保存所有用戶的公共的數據信息,如果使用Application對象,一個需要考慮的問題是任何寫操作都要在 Application_OnStart事件(global.asax)中完成.盡管使用Application.Lock和 Applicaiton.Unlock方法來避免寫操作的同步,但是它串行化了對Application對象的請求,當網站訪問量大的時候會產生嚴重的性 能瓶頸.因此最好不要用此對象保存大的數據集合.? ?????? 2.Session對象 ??? Session用于保存每個用戶的專用信息.她的生存期是用戶持續請求時間再加上一段時間(一般是20分鐘左右).S ession中的信息保存在Web服務器內容中,保存的數據量可大可小.當Session超時或被關閉時將自動釋放保存的數據信息.由于用戶停止使用應用 程序后它仍然在內存中保持一段時間,因此使用Session對象使保存用戶數據的方法效率很低.對于小量的數據,使用Session對象保存還是一個不錯 的選擇.使用Session對象保存信息的代碼如下://存放信息 Session["username"]="zhouhuan"; //讀取數據 string?UserName=Session["username"].ToString(); ??? 3.Cookie對象 Response.Cookies["UserID"].Value="0001"; //讀取信息 string?UserID=Response.Cookies["UserID"].Value; ??? 4.ViewState對象 ?? ViewState["nameID"]="0001"; ??//讀取信息 ?? string NameID=ViewState["nameID"].ToString(); 5.Cache對象 ?? Cache["nameID"]="0001"; ??//存放信息 ?? Cache.Insert("nameID","0001"1); ??//讀取信息 ??string?NameID=Cache["nameID"].ToString(); ?? 6.隱藏域 ??Hidden.Value="0001"; ??//獲取信息 ??string NameID=Hidden.Value; 7.查詢字符串 ??//執行上面的語句后在IE地址欄顯示的URL的代碼如下。 ?? http://localhost/List.aspx?nameID=0001&grade=002 ??//當跳轉到List.aspx后,可以通過以下代碼獲得所傳遞的信息。 ??string?NameID.GradeID; ?? NameID=Request.Params["nameID"]; ?? GradeID=Request.Params["gradeID"]; ????? 除了以上介紹的幾種對象外,還可以使用Context對象和Web.Config配置文件。? |
?
總結
以上是生活随笔為你收集整理的ASP.NET保存信息总结(Application、Session、Cookie、ViewState和Cache等)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5/19 补水泥
- 下一篇: 2010夏令营——还孩子快乐成长的空间