四:理解Page类的运行机制(例:基于PageStatePersister的页面状态存取)
有人說類似gridview datalist這樣的控件最好不要用在高并發,IO大的網站中
企業應用中為了快速開發到可以用一用
因為這是一類"沉重"的組件
我們姑且不談這種看法的正確性(我個人覺得有道理)
只談它為什么笨重:
因為這些控件給頁面帶來了大量的
viewstate
<input type="hidden" name="____VIEWSTATE" id="____VIEWSTATE" value=
這就是頁面狀態
一個頁面里可能存在兩種狀態
控件狀態,視圖狀態
page類是在
LoadPageStateFromPersistenceMedium()
SavePageStateToPersistenceMedium()
存取頁面狀態的
這兩個方法都是可以重寫的
他們也可以把狀態信息存儲在別的媒介中
我們這里通過重寫PageStatePersister屬性
來實現自己的狀態存取邏輯
我們為了壓縮viewstate里的數據,必須先實現一個工具類:如下
?
?下面重寫PageStatePersister來實現自定義的頁面狀態存取
Code?項目的webconfig文件
Code用來測試的一個頁面
Code用來測試的頁面的cs文件
注意里面重寫了PageStatePersister
?
實驗做完
大家運行一下就知道
定制出來的viewstate比自動生成的要小很多
最后評價一句
傳輸給客戶的東西是少了許多
但是服務器的CPU要做的事情也多了
用與不用還要自己權衡
轉載于:https://www.cnblogs.com/lizhizhang/p/4926392.html
總結
以上是生活随笔為你收集整理的四:理解Page类的运行机制(例:基于PageStatePersister的页面状态存取)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: thinkphp第一节结构
- 下一篇: NOIP前夕:noi.openjudge