成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何將ViewState持久化

開發 后端
本文介紹了如何將ViewState持久化。ViewState持久化后,就不會占用網絡帶寬,因此其存取只是服務器的磁盤讀取時間。

如果你有一個非常酷的頁面,頁面上很多東西自動地響應用戶操作而展現豐富的變化,你的ViewState是很有可能達到200K的。

這里是我將ViewState持久化保持在服務器端的代碼,這樣ViewState不占用網絡帶寬,因此其存取只是服務器的磁盤讀取時間。并且它很小,可以說是磁盤隨便轉一圈就能同時讀取好多ViewState,因此可以說“不占時間”。為了再“不占磁盤時間”,我還使用了緩存。

一下這段代碼可以放在頁面中,或者頁面的父類中:

ViewState持久化C# code

  1. protected override object LoadPageStateFromPersistenceMedium()  
  2. {  
  3.     var viewStateID = (string)((Pair)base.LoadPageStateFromPersistenceMedium()).Second;  
  4.     var stateStr = (string)Cache[viewStateID];  
  5.     if (stateStr == null)  
  6.     {  
  7.         var fn = Path.Combine(this.Request.PhysicalApplicationPath, @"App_Data/ViewState/" + viewStateID);  
  8.         stateStr = File.ReadAllText(fn);  
  9.     }  
  10.     return new ObjectStateFormatter().Deserialize(stateStr);  
  11. }  
  12.  
  13. protected override void SavePageStateToPersistenceMedium(object state)  
  14. {  
  15.     var value = new ObjectStateFormatter().Serialize(state);  
  16.     var viewStateID = (DateTime.Now.Ticks + (long)this.GetHashCode()).ToString(); //產生離散的id號碼  
  17.     var fn = Path.Combine(this.Request.PhysicalApplicationPath, @"App_Data/ViewState/" + viewStateID);  
  18.     ThreadPool.QueueUserWorkItem(obj => File.WriteAllText(fn, value));  
  19.     Cache.Insert(viewStateID, value);  
  20.     base.SavePageStateToPersistenceMedium(viewStateID);  
  21. }  

不使用Session,因為它會“丟失”。ViewState保存在磁盤上,即使服務器重新啟動,也不會丟失頁面狀態。

下面這段可以放在Global.asax中,也可以根本不管:

ViewState持久化C# code

  1. protected void Application_Start(object sender, EventArgs e)  
  2. {  
  3.     var dir = new DirectoryInfo(this.Server.MapPath("~/App_Data/ViewState/"));  
  4.     if (!dir.Exists)  
  5.         dir.Create();  
  6.     else 
  7.     {  
  8.         var nt = DateTime.Now.AddHours(-1);  
  9.         dir.GetFiles().ForEach(f =>  
  10.         {  
  11.             if (f.CreationTime < nt)  
  12.                 f.Delete();  
  13.         });  
  14.     }  
  15. }  

這可以確保絕對穩定可靠地工作。以后請放心使用ViewState,把交互式頁面提高水平才是最重要的,不要糾纏在“ViewState太大”上。實際上,由于頁面設計不夠酷,交互變化看上去不夠豐富,ViewState實在是太小太小了。

如果你使用了它有效提高了復雜交互頁面的效率,可以說一下提高了多少?!如果你覺得沒用,也可以說一下在什么情況下沒用。

【編輯推薦】

  1. 常用Web Service匯總(天氣預報、時刻表等)
  2. .NET操作Word的實現:using Word
  3. ASP.NET新手問題總結
  4. 深入研究Repeater控件:最大的靈活性
  5. DataList控件入門介紹
責任編輯:yangsai 來源: CSDN論壇
相關推薦

2012-12-16 19:00:19

本地化推廣微軟產品微軟Windows

2020-12-15 10:44:47

Progressive實習CIO

2011-08-12 09:43:22

2011-04-13 11:11:36

VC++托盤程序

2023-09-12 07:01:33

非結構化數據商業智能

2017-07-03 11:00:51

深度學習人工智能

2021-11-18 13:14:08

DDD聚合代碼

2011-05-18 14:51:43

2023-02-17 12:07:45

ChatGPTPython

2018-06-12 15:07:57

IT

2022-10-21 16:34:32

業數字化轉型CIO數據中臺

2025-02-27 12:07:46

2012-11-07 15:57:34

OSSECMYSQL

2011-11-08 15:15:40

路由器復位

2015-10-28 14:59:26

JAVA插件Chrome

2009-06-11 10:50:27

netbeans配置

2017-09-19 14:27:54

大數據數據可視化廣告投放

2011-07-07 15:45:45

iPhone SQLite 數據

2024-04-25 16:17:53

SentinelNacos數據源

2013-09-12 14:56:02

iOS持久化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费一区| 91麻豆久久久| 亚洲男女激情 | 色视频在线免费观看 | 超碰日本 | 伊人狼人影院 | 国产福利91精品一区二区三区 | 日韩在线一区二区 | 精品国产一区二区三区在线观看 | 99精品视频一区二区三区 | 婷婷在线免费 | 国产精品视频一区二区三区四蜜臂 | 国产精品久久av | 免费在线观看成人av | 久久久久国产一区二区三区不卡 | 国产综合久久久久久鬼色 | 亚洲国产一区二区三区在线观看 | 久久久久国产精品一区二区 | 伊人无码高清 | 黄色免费网站在线看 | 黄色毛片免费 | 国产乱码精品一区二区三区忘忧草 | 欧美4p | 国产特级毛片aaaaaa | 狠狠操在线 | 日韩在线中文 | 污书屋 | 日韩成人高清在线 | 夜夜操天天干 | 欧美激情综合五月色丁香小说 | 国产97在线 | 日韩 | 午夜免费网站 | 亚洲最新在线视频 | 日韩aⅴ视频 | 亚洲精品国产成人 | 91精品国产91久久久久久最新 | 亚洲欧洲在线观看视频 | 国产精品乱码一二三区的特点 | 日韩视频在线一区 | 国产欧美日韩综合精品一区二区 | 欧美一区二区三区的 |