1.Application:用於儲存所有使用者共用的資料資訊。在Asp.Net中類似的配置資料最好儲存在Web.config檔案中。如果使用Application物件,一個需要考慮的問題是任何寫操作都要在 Application_OnStart事件(global.asax)中完成。儘管使用Application.Lock和 Application.Unlock方法來避免寫操作的同步,但是它序列化了Application物件的請求,當網站訪問量大的時候會產生嚴重的效能瓶頸。因此最好不要用此物件儲存大的資料集。
使用如下:
//存放資訊
Application["nameID"]="0001";
//讀取資訊
String NameID=Application["nameID"].ToString();
2.Session:用於儲存每個使用者的專用資訊。Session中的資訊儲存在Web伺服器的記憶體中,儲存的資料量可大可小。當Session超時或被關閉時將自動釋放儲存的資料資訊。對於小量的資料Session物件儲存還是一個不錯的選擇。
使用如下:
//存放資訊
Session["nameID"]="0001";
//讀取資訊
String NameID=Session["nameID"].ToString();
3.Cookie: 用於儲存客戶瀏覽器請求伺服器頁面的請求資訊,其有效期可以人為設定,而且其儲存的資料量很受限制,因此不要儲存資料集及其他大量資料。而且Cookie以明文方式將資料資訊儲存在客戶端的計算機中,因此最好不要儲存敏感的未加密的資料。
使用如下:
//存放資訊
Response.Cookie["nameID"].Value="0001";
//讀取資訊
String NameID=Response.Cookie["nameID"].Value;
4.ViewState:常用於儲存單個使用者的狀態資訊,可以儲存大量的資料但是過多使用會影響應用程式的效能。所有Web伺服器控制元件都使用ViewStat在頁面回發期間儲存自己的狀態資訊。每個控制元件都有自己的ViewState,不用時最好關閉以節省資源。通過給@Page指令新增"EnableViewState= false"屬性可以禁止整個頁面的ViewState。
使用如下:
//存取資訊
ViewState["nameID"]="0001";
//讀取資訊
string NameID=ViewState["nameID"].ToString();
5.Cache:用於在Http請求間儲存頁面和資料。它允許將頻繁訪問的大量伺服器資源儲存在記憶體中,當使用者發出相同的請求時伺服器不再次處理而是將Cache中儲存的資訊返回給使用者,節省了伺服器處理請求時間。
使用如下:
//存放資訊
Cache["nameID"]="0001";
//存放資訊
Cache.Insert("nameID","0001");
//讀取資訊
String NameID=Cache["nameID"].ToString();
注意: 如果利用快取提供的清理、到期時間和依賴項等功能,必須使用Cache.Insert方法或Cache.Add方法新增資訊。
6.隱藏域:Hidden控制元件屬於Html型別的伺服器控制元件,可以實現隱藏域的功能,他和其他的空間沒什麼區別只是不會在瀏覽器上顯示,始終處於隱藏狀態。
使用如下:
//存放資訊
Hidden.Value="0001";
//讀取資訊
String NameID=Hidden.Value;
7.查詢字串:將傳遞的值連線在URL後面,然後通過Response.Redirect方法實現客戶端的重定向。
傳遞方法如下:
Response.Redirect("/");
執行上面的語句後在IE位址列顯示的URL的程式碼如下:
http://www.126fm.net/
當跳轉到List.aspx後,可以通過下面程式碼獲得傳遞的資訊:
String NameID,GradeID;
NameID=Request.Params["nameID"];
GradeID=Request["gradeID"];
通過比較總結的每一種物件應用的具體環境:
方法 資訊量大小 儲存時間 應用範圍 儲存位置
Application 任意大小 整個應用程式的生命週期 所有使用者 伺服器段
Session 小量,簡單的資料 使用者活動時間+一般延遲時間(一般為20分鐘) 單個使用者 伺服器段
Cookie 小量,簡單的資料 可以根據需要設定 單個使用者 客戶端
Viewstate 小量,簡單的資料 一個Web頁面的生存週期 單個使用者 客戶端
Cache 任意大小 可以根據需要設定 所有使用者 伺服器段
隱藏域 小量,簡單的資料 一個Web頁面的生存週期 單個使用者 客戶端
查詢字串 小量,簡單的資料 直到下次頁面跳轉請求 單個使用者 客戶端
web.config檔案 不變或極少改變的小量資料 直到配置檔案被更新 所有使用者
Application、Session、Cookie、ViewState、Cache、Hidden的區別 (總結)
方法 |
資訊量大小 |
作用域和儲存時間 |
應用範圍 |
儲存位置 |
Application |
任意大小 |
整個應用程式的生命期 |
整個應用程式/所有使用者 |
伺服器端 |
Cache |
任意大小 |
可以根據需要設定 |
整個應用程式/所有使用者 |
伺服器端 |
Session |
小量,簡單的資料 |
使用者活動時間+一段延遲時間(一般為20分鐘) |
單個使用者 |
伺服器端 |
Cookie |
小量,簡單的資料 |
可以根據需要設定 |
單個使用者 |
客戶端 |
Viewstate |
小量,簡單的資料 |
一個Web頁面的生命期 |
單個使用者 |
客戶端 |
隱藏域 |
小量,簡單的資料 |
一個Web頁面的生命期 |
單個使用者 |
客戶端 |
查詢字串 |
小量,簡單的資料 |
直到下次頁面跳轉請求 |
單個使用者 |
客戶端 |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-664112/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- cookie和session的區別(全面總結)CookieSession
- cookie、session總結CookieSession
- cookie和session的區別CookieSession
- session與cookie的區別SessionCookie
- cookie,session,sessionStorage,localStotage的區別CookieSession
- cookie與session的區別與聯絡CookieSession
- Session與Cookie的區別與聯絡SessionCookie
- cookie和session的詳解與區別CookieSession
- Cookie 和 Session 關係和區別CookieSession
- Token ,Cookie、Session 三者區別CookieSession
- session 和 cookie 有什麼區別?SessionCookie
- cookie和session 有什麼區別?CookieSession
- cookie與session的區別(圖文詳解)CookieSession
- Redis分散式Session和普通的cookie session有什麼區別?Redis分散式SessionCookie
- 理解cookie、session、localStorage、sessionStorage的關係與區別CookieSession
- http中session和cookie的區別和關係HTTPSessionCookie
- Java Web中requset,session,application 的作用域及區別JavaWebSessionAPP
- 一文搞懂Session和Cookie的用法及區別SessionCookie
- cookie與session的區別以及在Django中的實現CookieSessionDjango
- cookie和session有什麼區別?Python學習!CookieSessionPython
- cookie是什麼?和session有什麼區別?CookieSession
- HTTP協議Cookie和Session有什麼區別HTTP協議CookieSession
- Cookie和Session的區別以及設計測試用例CookieSession
- Session是什麼?它與Cookie有什麼區別?SessionCookie
- cookie和session有什麼區別?Python學習分享CookieSessionPython
- display:none和visibility:hidden的區別None
- display: none與visibility: hidden的區別None
- 【Python入門必看】Python中Cookie和Session的區別與聯絡!PythonCookieSession
- overflow:hidden,auto什麼區別
- Service Worker Cache 和 HTTP Cache 的區別HTTP
- 徹底弄清楚session,cookie,WebStorage的區別及應用場景SessionCookieWeb
- cookie sessionCookieSession
- cookie & sessionCookieSession
- 前端基礎:Session 和 Cookie 差別前端SessionCookie
- Linux Buffer/Cache 的區別Linux
- buffer與cache的區別
- 說說display:none和visibility:hidden的區別None
- Client Side Cache 和 Server Side Cache 的區別clientIDEServer
- CSS display:none和visible:hidden區別CSSNone