<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        化惡魔為天使,巧移ViewState至SqlServer

        來源:懂視網 責編:小采 時間:2020-11-09 07:24:41
        文檔

        化惡魔為天使,巧移ViewState至SqlServer

        化惡魔為天使,巧移ViewState至SqlServer:(發文后記:還是說清楚前提吧,本文只適用于當不得已才使用ViewState的情況) ViewState 一直以來備受爭議,主要是因為他臃腫的體積,導致客戶的的回傳( PostBack )數據量很大,而其中真正有用的數據又很少,網絡帶寬被浪費不說,用戶的體驗也很差。 最近
        推薦度:
        導讀化惡魔為天使,巧移ViewState至SqlServer:(發文后記:還是說清楚前提吧,本文只適用于當不得已才使用ViewState的情況) ViewState 一直以來備受爭議,主要是因為他臃腫的體積,導致客戶的的回傳( PostBack )數據量很大,而其中真正有用的數據又很少,網絡帶寬被浪費不說,用戶的體驗也很差。 最近

        (發文后記:還是說清楚前提吧,本文只適用于當不得已才使用ViewState的情況) ViewState 一直以來備受爭議,主要是因為他臃腫的體積,導致客戶的的回傳( PostBack )數據量很大,而其中真正有用的數據又很少,網絡帶寬被浪費不說,用戶的體驗也很差。 最近

        (發文后記:還是說清楚前提吧,本文只適用于當不得已才使用ViewState的情況)
        ViewState
        一直以來備受爭議,主要是因為他臃腫的體積,導致客戶的的回傳(PostBack)數據量很大,而其中真正有用的數據又很少,網絡帶寬被浪費不說,用戶的體驗也很差。

        最近項目中用到了TelerikRadGrid,使用服務器端綁定數據后頁面ViewState體積過大,而導致性能嚴重降低,便開始找尋優化方式,盡量將ViewState存在服務器端。

        由于項目已開發至中期,不可能做類似于取消ViewState或使用客戶端綁定之類的大規模改動。

        要想改動量最小化,肯定不能影響原有ViewState的使用,那只能重寫Page類的LoadPageStateFromPersistenceMedium()SavePageStateToPersistenceMedium(object state)的方法,在這兩個Override的方法中把數據存在別的什么地方。

        這時候就來問題了,ViewState只是一個頁面的周期,每打開一個頁面都會生成一個新的ViewState,連刷新都不例外,如果存在文件或數據庫中,這些數據累積起來可不是開玩笑的,而且也用不上了,那還不得要寫過期刪除的方法么?太麻煩了。這時候,Session就發揮大作用了,Session的生命周期長于ViewState,過期會自動刪除,而且還是存在服務器端的,不會增加數據傳輸量,看來很合適。

        代碼如下:

        Code
        public class AmoPage: System.Web.UI.Page
        {
        #region === Move View State To Session ===

        private string _pageGuid = null;
        public string PageGUID
        {
        get
        {
        if (_pageGuid == null)
        _pageGuid = this.Request.Form["__AmoViewState"];
        if (_pageGuid == null)
        _pageGuid = Guid.NewGuid().ToString();
        return _pageGuid;
        }
        set { _pageGuid = value; }
        }

        protected override object LoadPageStateFromPersistenceMedium()
        {
        return Session[this.PageGUID];
        }

        protected override void SavePageStateToPersistenceMedium(object state)
        {
        RegisterHiddenField("__AmoViewState", this.PageGUID);
        Session[this.PageGUID] = state;
        }

        #endregion
        }


        但是不能忽略一個問題,Session默認是由WebServer 管理的,一般只用于存儲會話中用戶登錄信息這種數據量極小的情況,如果直接把ViewState這個大胖子塞進去,全部是保存在內存中的,無疑用不了多長時間,WebServer就會因為Session數據量過大而崩潰。看來我們還需要轉移Session

        正好,ASP.NET支持自定義會話管理的方式:

        開始-> All Programs-> Microsoft Visual Studio 2008->Visual Studio Tools->Visual Studio 2008 Command Prompt

        進入VS命令行模式。

        執行 aspnet_regsql –S (192.168.19.250) –U sa –P 123 –ssadd

        這是指使用用戶名sa 密碼123登錄到SQLServer服務器192.168.19.250上添加狀態管理相關的數據庫。其實它是建立了一個只有出口存儲過程的數據庫ASPState,并在系統數據庫tempdb中加入了兩張分別用于存儲Application Session的表。

        這時候我們就完成了狀態管理相關的數據庫的創建,然后只要在 Web.config中做如下設置即可





        這時候,該Web應用的Session數據就會存儲于數據庫中。

        在使用的時候,只要將原有的頁面都從AmoPage類繼承就行。

        至于效果,試過就知道!
        使用前:(很熟悉吧...)

        使用后:(干凈,清透,沒問題!)

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        化惡魔為天使,巧移ViewState至SqlServer

        化惡魔為天使,巧移ViewState至SqlServer:(發文后記:還是說清楚前提吧,本文只適用于當不得已才使用ViewState的情況) ViewState 一直以來備受爭議,主要是因為他臃腫的體積,導致客戶的的回傳( PostBack )數據量很大,而其中真正有用的數據又很少,網絡帶寬被浪費不說,用戶的體驗也很差。 最近
        推薦度:
        標簽: sql 惡魔
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲国产精品无码久久九九| 国产无人区码卡二卡三卡免费| 免费观看男人免费桶女人视频| 亚洲国产片在线观看| 日本人的色道免费网站| 亚洲黄色高清视频| 免费观看无遮挡www的小视频| 亚洲制服丝袜中文字幕| 在线免费视频一区| 美女羞羞视频免费网站| 亚洲美女在线国产| 国产成年无码久久久免费| 亚洲欧洲日产国码久在线观看| 最近中文字幕国语免费完整| 亚洲中文字幕乱码一区| 免费在线观看黄网| 国产精品免费观看调教网| 亚洲日本香蕉视频| 日韩a在线观看免费观看| 一级A毛片免费观看久久精品| 亚洲中文久久精品无码| 无码国产精品一区二区免费式影视| 亚洲自偷自偷在线成人网站传媒| 亚洲精品tv久久久久| 久久不见久久见免费视频7| 亚洲中文字幕乱码一区| 久久久久久A亚洲欧洲AV冫| 95老司机免费福利| 国产偷国产偷亚洲高清在线| 亚洲国产精品无码专区影院| 成人影片麻豆国产影片免费观看| selaoban在线视频免费精品| 亚洲一区免费观看| 免费无码又爽又刺激高潮| 久久er国产精品免费观看2| 亚洲日韩精品国产3区| 亚洲午夜国产精品无码老牛影视| 免费黄色网址网站| 国产特黄一级一片免费| 国产成人精品亚洲2020| 亚洲韩国精品无码一区二区三区|