iT邦幫忙

DAY 4
0

給學弟的ASP.NET網頁學習經驗系列 第 4

ASP.NET學習經驗#4----補充學習:不可不知卻真不知的ViewState

秉持著被提出有意思的東西就想去探索的好奇心,

就該好好了解.NET上被我忽視的ViewState!

(要不是有人指點,真不知要造成多少負擔....)

Control.ViewState

Control.EnableViewState

當然先去看MSDN多多了解一下

簡而言之,ViewState是用來儲存網頁上伺服器控制項的資訊

用來比較及檢查資料(例如觸發xxxxChange事件)

只要form標籤上有標明runat=server

就會自動加上一段<input type="hidden" name="__VIEWSTATE" value="">

裡面的資料都會經過編碼(非加密)

好處:

  • HTTP 是沒有狀態
    Stateless的,透過ASP的ViewState可以在不占用系統資源下儲存網頁的資訊(與Session不同)

壞處:

  • 增加網頁的大小,進而產生Load的負擔

有很多時候網頁或控制項只是為了呈現資料:

  • 不需要使用PostBack
  • 沒有使用Control Event
  • 展示純粹資料內容的網頁(Detail
    ..)

這些情況就可以去調整關閉ViewState

透過控制項上的EnableViewState屬性可以變更是否儲存ViewState

但是有些控制項因為實作了 IPostBackDataHandler 這個東東

所以還是會保存網頁上控制項的狀態值

畢竟檢查狀態的機制不只有 LoadViewState

還有 LoadPostData 撐腰!!

多花點時間調整與檢查,可以使得網頁更有效率!!(當然要先了解這東西才行阿)


上一篇
ASP.NET學習經驗#3----一切還只是虛有其表
下一篇
ASP.NET學習經驗#5----同學常問:什麼是PostBack?Request?Response?
系列文
給學弟的ASP.NET網頁學習經驗30
0
mis2000lab
iT邦好手 1 級 ‧ 2014-09-19 22:41:05

讚喔!寫的很清楚

0
mis2000lab
iT邦好手 1 級 ‧ 2014-09-19 23:55:08

補充一下,這邊講的就是微軟MSDN這一段 --

ASP.NET 效能概觀
http://msdn.microsoft.com/zh-tw/library/cc668225(v=vs.110).aspx

0
Ben
iT邦新手 3 級 ‧ 2014-09-20 00:59:23

沒有mis2000lab前輩的引導,我是無法學習到一些難以直接接觸的面向!!!

謝謝!!

0
mis2000lab
iT邦好手 1 級 ‧ 2014-09-20 22:53:04

大家一起討論,知識因為分享而偉大 :-)

我有出書,希望能「系統化」地幫上初學者的忙

我要留言

立即登入留言