內建對象方法 資訊量大小 範圍及儲存時間 應用範圍
=============================================================================
Application 任意大小的資料 整個應用程式的生命期 整個應用程式/所有使用者
Session 小量簡單的資料 使用者啟用時間+延遲時間(預設20分鐘) 單個使用者
Cookie 小量簡單的資料 可以根據需要設定 單個使用者
Viewstate 小量簡單的資料 一個WEB頁面的生命期 單個使用者
Cache 任意大小的資料 可以根據需要設定 整個應用程式/所有使用者
隱藏欄位 小量簡單的資料 一個WEB頁面的生命期 單個使用者
查詢字串 小量簡單的資料 直到下個頁面跳轉請求 服務 單個使用者
========================================================================================
1.Application:用於儲存所有使用者共用的資料資訊。在Asp.Net中類似的配置資料最好儲存在Web.config檔案中。如果使用Application對象,一個需要考慮的問題是任何寫操作都要在 Application_OnStart事件(global.asax)中完成。儘管使用Application.Lock和 Application.Unlock方法來避免寫操作的同步,但是它序列化了Application對象的請求,當網站訪問量大的時候會產生嚴重的效能瓶頸。因此最好不要用此對象儲存大的資料集。
使用如下:
//存放資訊
Application["UserNameID"]="1000";
Application.Add("USer", datatable);
//讀取資訊
String NameID=Application["UserNameID"].ToString();
GridView1.DataSource = Application["USer"] as DataTable;
GridView1.DataBind();
2.Session:用於儲存每個使用者的專用資訊。Session中的資訊儲存在Web伺服器的記憶體中,儲存的資料量可大可小。當Session逾時或被關閉時將自動釋放儲存的資料資訊。對於小量的資料Session對象儲存還是一個不錯的選擇。
使用如下:
//存放資訊
Session["UserNameID"]="1000";
//讀取資訊
String NameID=Session["UserNameID"].ToString();
3.Cookie:用於儲存客戶瀏覽器請求伺服器頁面的請求資訊,其有效期間可以人為設定,而且其儲存的資料量很受限制,因此不要儲存資料集及其他大量資料。而且Cookie以明文方式將資料資訊儲存在用戶端的電腦中,因此最好不要儲存敏感的未加密的資料。
使用如下:
//存放資訊
Response.Cookie["UserNameID"].Value="1000";
//讀取資訊
String NameID=Response.Cookie["UserNameID"].Value;
4.ViewState:常用於儲存單個使用者的狀態資訊,可以儲存大量的資料但是過多使用會影響應用程式的效能。所有Web伺服器控制項都使用ViewStat在頁面回傳期間儲存自己的狀態資訊。每個控制項都有自己的ViewState,不用時最好關閉以節省資源。通過給@Page指令添加"EnableViewState= false"屬性可以禁止整個頁面的ViewState。
使用如下:
//存取資訊
ViewState["UserNameID"]="1000";
//讀取資訊
string NameID=ViewState["UserNameID"].ToString();
5.Cache:用於在Http請求間儲存頁面和資料。它允許將頻繁訪問的大量伺服器資源儲存在記憶體中,當使用者發出相同的請求時伺服器不再次處理而是將Cache中儲存的資訊返回給使用者,節省了伺服器處理請求時間。
使用如下:
//存放資訊
Cache["UserNameID"]="1000";
//存放資訊
Cache.Insert("UserNameID","1000");
//讀取資訊
String UserNameID=Cache["UserNameID"].ToString();
6.隱藏欄位:Hidden控制項屬於Html類型的伺服器控制項,可以實現隱藏欄位的功能,他和其他的空間沒什麼區別只是不會在瀏覽器上顯示,始終處於隱藏狀態。
使用如下:
//存放資訊
Hidden.Value="1000";
//讀取資訊
String UserNameID=Hidden.Value;
7.查詢字串:將傳遞的值串連在URL後面,然後通過Response.Redirect方法實現用戶端的重新導向。
使用如下:
Response.Redirect("User.aspx?UserNameID=10000&LevelD=100");
執行上面的語句後在IE地址欄顯示的URL的代碼如下:
http://localhost/User.aspx?UserNameID=1000&LevelID=100
當跳轉到User.aspx後,可以通過下面代碼獲得傳遞的資訊:
String UserNameID,LevelD;
UserNameID=Request.Params["UserNameID"];
LevelD=Request["LevelD"];
========================================================================================
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”]=”cc”;
String ID =ViewState[“ID”].ToString();
Cache
1、Cache用於在Http請求期間儲存頁面或者資料
2、Cache的使用可以大大的提高整個應用程式的效率
3、它允許將頻繁訪問的伺服器資源儲存在記憶體中,當使用者發出相同的請求後,伺服器不是再次處理而是將Cache中儲存的資料直接返回給使用者
4、可以看出Cache節省的是時間—伺服器處理時間
5、Cache執行個體是每一個應用程式專有的,其生命週期==該應用程式周期
應用程式重啟將重新建立其執行個體
6、注意:如果要使用緩衝的清理、到期管理、依賴項等功能必須使用Insert 或者Add方法方法添加資訊
7、代碼:Cache[”ID”]=”cc”;或者Cache.Insert(“ID”,”test”);
String ID =Cache[“ID”].ToString();
Hidden
1、Hidden控制項屬於Html類型的伺服器控制項,始終處於隱藏狀態
2、每一次提交的時候它會和其他伺服器控制項一起提交到伺服器端
3、代碼如下:Hidden.Value=”cc”;
string id=Hidden.Value; 要使用Runat=server