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