Application, Session, Cookie, Viewstate, Cache對象用法和區別

來源:互聯網
上載者:User

================================================================================

        1.Application:用於儲存所有使用者共用的資料資訊。 在Asp.Net中類似的配置資料最好儲存在Web.config檔案中。如果使用Application對象,一個需要考慮的問題是任何寫操作都要在 Application_OnStart事件(global.asax)中完成。儘管使用Application.Lock和 Application.Unlock方法來避免寫操作的同步,但是它序列化了Application對象的請求,當網站訪問量大的時候會產生嚴重的效能 瓶頸。因此最好不要用此對象儲存大的資料集。

使用如下:
//存放資訊
Application["UserNameID"]="1000";
//讀取資訊
String NameID=Application["UserNameID"].ToString();

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.