西西軟件下載最安全的下載網(wǎng)站、值得信賴的軟件下載站!

首頁編程開發(fā)ASP.NET → ASP.NET編程中Web頁面幾種狀態(tài)管理總結

ASP.NET編程中Web頁面幾種狀態(tài)管理總結

相關軟件相關文章發(fā)表評論 來源:西西整理時間:2012/11/21 8:45:07字體大。A-A+

作者:西西點擊:0次評論:0次標簽: Cookie Session

  • 類型:站長工具大。5KB語言:中文 評分:7.5
  • 標簽:
立即下載
4 頁 ApplicationState

ApplicationState

應用程序狀態(tài)是指采用HttpApplicationState實現(xiàn)的狀態(tài)維持方式,使用代碼如下:

Application.Lock();
Application["PageRequestCount"] = ((int)Application["PageRequestCount"]) + 1;
Application.UnLock();

對于這種方法,我不建議使用,因為:
1. 與使用靜態(tài)變量差不多,直接使用靜態(tài)變量可以不需要字典查找。
2. 選擇強類型的集合或者變量可以避免裝箱拆箱。

ViewState,ControlState

視圖狀態(tài),控件狀態(tài),二者是類似,在頁面中表現(xiàn)為一個hidden-input元素:

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="......................" />

控件狀態(tài)是ASP.NET 2.0中引入,與視圖狀態(tài)相比,它不允許關閉。
由于它們使用方式一致,而且視圖狀態(tài)是基于控件狀態(tài)的實現(xiàn)邏輯,所以我就不區(qū)分它們了。

在ASP.NET的早期,微軟為了能幫助廣大開發(fā)人員提高開發(fā)效率,引用入一大批的服務端控件,并為了能將事件編程機制引入ASP.NET中,又發(fā)明了ViewState。

這種方式雖然可以簡化開發(fā)工作量,然而卻有一些限制和缺點:
1. 視圖狀態(tài)的數(shù)據(jù)只能用于回發(fā)(postback)。
2. 視圖狀態(tài)的【濫用】容易導致生成的HTML較大,這會引起一個惡性循環(huán):
  a. 過大的ViewState在序列化過程中會消耗較多的服務器CPU資源,
  b. 過大的ViewState最終生成的HTML輸出也會很大,它會浪費服務端網(wǎng)絡資源,
  c. 過大的ViewState輸出導致表單在下次提交時,會占用客戶端網(wǎng)絡資源。
  d. 過大的ViewState數(shù)據(jù)上傳到服務端后,反序列化又會消耗較多的服務器CPU資源。
  因此,整個交互過程中,用戶一直在等待,用戶體驗極差。

在ASP.NET興起的年代,ViewState絕對是個了不起的發(fā)明。
然而,現(xiàn)在很多關于ASP.NET性能優(yōu)化的方法中,都會將【關閉ViewState】放在頭條位置。
為什么會這樣呢,大家可以自己思考一下了。

有些人認為:我現(xiàn)在做的程序只是在局域網(wǎng)內使用,使用ViewState完全沒有問題!
然而,那些人或許沒有想過:
1. 未來用戶可能會把它部署在互聯(lián)網(wǎng)上運行(對于產(chǎn)品來說就是遇到大客戶了)。
2. 項目早期的設計與規(guī)劃,對后期的開發(fā)與維護來說,影響是巨大的,因為許多基礎部分通常是在早期開發(fā)的。
當這二種情況的任何一種發(fā)生時,想再禁用ViewState,可能已經(jīng)晚了。

對于視圖狀態(tài),我認為它解決的問題比它引入的問題要多要復雜,
因此,我不想花時間整理它的優(yōu)缺點,我只想說一句:把它關了,在web.config中關了。

另外,我不排斥使用服務器控件,我認為:你可以使用服務端控件顯示數(shù)據(jù),但不要用它處理回發(fā)。

如果你仍然認為視圖狀態(tài)是不可缺少的,那我還是建議你看看ASP.NET MVC框架,看看沒有視圖狀態(tài)是不是照樣可以寫ASP.NET程序。

    相關評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)
    推薦文章

    沒有數(shù)據(jù)

    最新文章
      沒有數(shù)據(jù)