(11)Web程式儲存狀態的幾種方式,Application,Session,Cookie,ViewState

來源:互聯網
上載者:User

標籤:

WEb程式儲存狀態的方式有這樣幾種:

1.Application:儲存在Application中的資料是全域有效;Application裡面存放的應該是訪問多修      改較少並且是全域至少大部分功能會使用的資料,例如計數器或者資料庫連接串等。

        Application.Lock();
        ((int)Application["Count"])++;
        Application.Unlock();

2.Session:在Asp.Net內部,有一個StateApplication來管理Session

3.Cookie

4.ViewState:實際上ViewState並不神秘,就是一個Hidden欄位,但是他是伺服器控制項狀態儲存的基礎

下面我們分別介紹這幾種:

ViewState

例如:

<form name="form1" method="post" action="modi_user_info.aspx"language="javascript" onsubmit="javascript:return WebForm_OnSubmit();"id="form1"><input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /><input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value=""/><input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"value="/wEPDwUKLTIzODM0NzQ5OQ9kFgICAQ9kFgRmDw8WAh4EVGV4dAUHamFzbWluZWRkAggPDxYCHwAFDDA1OTEwMDAwMDYxM2RkZA==" />

做過Web程式的人可能都有這種痛苦的體會,有時候為了處理頁面上面比較複雜的功能,

常常會加很多Hidden,然後在伺服器端用一大堆判斷來分析目前的狀態,寫起來煩人,

寫完了代碼更是難看;實際上,ViewState就是幫我們系統的實現了儲存控制項狀態的功能

,伺服器端控制項能夠在多次請求間儲存狀態也全靠它。

1、ViewState是存放在用戶端,因此會減輕伺服器的負擔,是一種比較好的儲存資料的

方式。
   2、因為ViewState本身的限制,只能儲存可以序列化的對象,而且最好不要放太多東

西,能省則省,以免在減慢傳輸的速度,以及加重伺服器解析的負擔。
   3、我們通過很簡單的方式就可以把ViewState裡面的值擷取出來,我們上面討論了一

些,雖然沒有把解析的代碼寫出來,但是利用LosFormatter可以得到ViewState反序列

化後的對象,那麼要解析出來簡直是易如反掌;所以ViewState在安全性上面還是比較,建議不要

存放比較機密和敏感的資訊,儘管ViewState可以加密,但是由於ViewState要儲存在客

戶端,天生就有安全性的隱患。
[C#]
// 儲存在 ViewState 中
ViewState["SortOrder"] = "DESC"; 字串5

// 從 ViewState 中讀取
string sortOrder = (string)ViewState["SortOrder"];

如果要使用 ViewState,則在 ASPX 頁面中必須有一個伺服器端表單標記 (<form

runat=server>)。表單欄位是必需的,這樣包含 ViewState 資訊的隱藏欄位才能回傳

給伺服器。而且,該表單還必須是伺服器端的表單,這樣在伺服器上執行該頁面

時,ASP.NET 頁面架構才能添加隱藏的欄位。

在頁面不回傳的情況下,可以通過省略伺服器端的 <form> 標記來去除頁面中的

ViewState。 

 Session

 Session值是儲存在伺服器記憶體上的,那麼,可以肯定,大量

 

(11)Web程式儲存狀態的幾種方式,Application,Session,Cookie,ViewState

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.