如果你必须开发交互式页面,ViewState越大可能意味着越有本事
protected override object LoadPageStateFromPersistenceMedium()
{
var viewStateID = (string)((Pair)base.LoadPageStateFromPersistenceMedium()).Second;
var stateObject = Cache[viewStateID];
if (stateObject != null)
return stateObject;
var fn = this.Server.MapPath("~/App_Data/ViewState/" viewStateID);
var stateStr = File.ReadAllText(fn);
return new ObjectStateFormatter().Deserialize(stateStr);
}
protected override void SavePageStateToPersistenceMedium(object state)
{
var viewStateID = (DateTime.Now.Ticks this.GetHashCode()).ToString(); //产生离散的id号码
Cache.Insert(viewStateID, state);
ThreadPool.QueueUserWorkItem(obj =>
{
var value = new ObjectStateFormatter().Serialize(state);
var fn = this.Server.MapPath("~/App_Data/ViewState/" viewStateID);
File.WriteAllText(fn, value);
});
base.SavePageStateToPersistenceMedium(viewStateID);
}
http://topic.csdn.net/u/20080530/22/ef0d36a4-6bd4-4eba-9743-b56f080b2161.html
他们设置了哪些标签:
.net应用 asp.net asp.net(viewstate) C# VIEWSTATE ViewState缓存 ViewState越大可能意味着越有本事 vs Web WEB开发 保存状态信息 不同使用 经典 如果你必须开发交互式页面
谁收藏了这个网址:
时间:2008-5-30 23:31:09 | 相关网摘
时间:2008-5-31 9:06:45 | 相关网摘
页面上很多东西自动地响应用户操作而展现丰富的变化,你的ViewState是很有可能达到200K的。
这里是我将ViewState持久化保持在服务器端的代码,这样ViewState不占用网络带宽,因此其存取只是服务器的磁盘读取时间。并且它很小,可以说是磁盘随便转一圈就能同时读取好多ViewState
时间:2008-5-31 9:25:45 | 相关网摘
的
时间:2008-5-31 10:25:50 | 相关网摘
时间:2008-5-31 15:43:57 | 相关网摘
时间:2008-6-1 16:14:17 | 相关网摘
使用标签:web,时间:2008-6-1 16:22:26 | 相关网摘
时间:2008-6-2 12:15:45 | 相关网摘
时间:2008-6-2 16:43:47 | 相关网摘
时间:2008-6-2 18:47:42 | 相关网摘
如果你有一个非常酷的页面,页面上很多东西自动地响应用户操作而展现丰富的变化,你的ViewState是很有可能达到200K的。
这里是我将ViewState持久化保持在服务器端的代码,这样ViewState不占用网络带宽,因此其存取只是服务器的磁盘读取时间。并且它很小,可以说是磁盘随便转一圈就能同时读取好多ViewState,因此可以说“不占时间”。为了再“不占磁盘时间”,我还使用了缓存。
一下这段代码可以放在页面中,或者页面的父类中:
时间:2008-6-3 10:35:14 | 相关网摘
时间:2008-6-3 14:37:13 | 相关网摘
时间:2008-6-3 14:41:58 | 相关网摘
时间:2008-6-3 15:09:38 | 相关网摘
时间:2008-6-3 15:49:24 | 相关网摘
时间:2008-6-3 16:06:27 | 相关网摘
时间:2008-6-3 16:11:44 | 相关网摘
时间:2008-6-3 16:35:47 | 相关网摘
时间:2008-6-3 16:45:03 | 相关网摘
时间:2008-6-3 17:14:21 | 相关网摘
不错
时间:2008-6-3 17:19:54 | 相关网摘
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
46539492
男儿当自强(http://blog.csdn.net/46539492/)
等级:
发表于:2008-05-31 13:51:1550楼 得分:0
楼主的代码我在asp.net2.0里测试了,修正的代码如下:
==================================================
C# code
#region 解决ViewState过于庞大的问题
protected override object LoadPageStateFromPersistenceMedium()
{
string viewStateID = (string)((Pair)base.LoadPageStateFromPersistenceMedium()).Second;
string stateStr = (string)Cache[viewStateID];
if (stateStr == null)
{
string fn = Path.Combine(this.Request.PhysicalApplicationPath, @"App_Data/ViewState/" viewStateID);
stateStr = File.ReadAllText(fn);
}
return new ObjectStateFormatter().Deserialize(stateStr);
}
protected override void SavePageStateToPersisten
时间:2008-6-3 17:27:07 | 相关网摘
时间:2008-6-3 17:29:53 | 相关网摘
时间:2008-6-3 18:18:12 | 相关网摘
时间:2008-6-3 18:40:31 | 相关网摘
时间:2008-6-3 20:45:56 | 相关网摘
时间:2008-6-3 22:36:39 | 相关网摘
时间:2008-6-3 22:41:46 | 相关网摘
时间:2008-6-3 23:01:53 | 相关网摘
Request.PhysicalApplicationPath, @
时间:2008-6-4 0:29:29 | 相关网摘
时间:2008-6-4 8:36:33 | 相关网摘
protected override object LoadPageStateFromPersistenceMedium()
{
var viewStateID = (string)((Pair)base.LoadPageStateFromPersistenceMedium()).Second;
var stateObject = Cache[viewStateID];
if (stateObject != null)
return stateObject;
var fn = this.Server.MapPath("~/App_Data/ViewState/" viewStateID);
var stateStr = File.ReadAllText(fn);
return new ObjectStateFormatter().Deserialize(stateStr);
}
protected override void SavePageStateToPersistenceMedium(object state)
{
var viewStateID = (DateTime.Now.Ticks this.GetHashCode()).ToString(); //产生离散的id号码
Cache.Insert(viewStateID, state);
ThreadPool.QueueUserWorkItem(obj =>
{
var value = new ObjectStateFormatter().Serialize(state);
var fn = this.Server.MapPath("~/App_Data/ViewState/" viewStateID);
File.WriteAllText(fn, value);
});
base.SavePageStateToPersistenceMedium(viewStateID);
}
时间:2008-6-4 11:35:29 | 相关网摘
t(fn, value));
这一句也不是很必要。写为:
File.WriteAllText(fn, value));
就可以了。当时也是为了玩玩,今天才又想起来还有这个没改。
时间:2008-6-4 11:38:50 | 相关网摘
时间:2008-6-4 12:39:16 | 相关网摘
时间:2008-6-4 13:03:33 | 相关网摘
了影响通信量,尤其是当数据很大时候,不知道我
时间:2008-6-4 14:41:21 | 相关网摘
摘要
时间:2008-6-4 15:44:49 | 相关网摘
时间:2008-6-4 16:20:02 | 相关网摘
在服务器端的代码,这样ViewState不占用网络带宽,因此其存取只是服务器的磁盘读取时间。并且它很小,可以说是磁盘随便转一圈就能同时读取好多ViewState,因此可以说“不占时间”。为了再“不占磁盘时间”,我还使用了缓存。
时间:2008-6-4 17:14:30 | 相关网摘
没有问题,散分贴:如果你必须开发交互式页面,ViewState越大可能意味着越有本事
时间:2008-6-4 17:33:33 | 相关网摘
ViewState
使用标签:经典,时间:2008-6-4 21:15:02 | 相关网摘
使用标签:vs,时间:2008-6-4 22:38:29 | 相关网摘
时间:2008-6-5 0:17:10 | 相关网摘
时间:2008-6-5 0:48:52 | 相关网摘
因此可以说“不占
时间:2008-6-5 9:48:41 | 相关网摘
时间:2008-6-5 10:39:27 | 相关网摘
时间:2008-6-5 11:32:19 | 相关网摘
时间:2008-6-5 11:33:05 | 相关网摘
时间:2008-6-5 12:26:44 | 相关网摘
时间:2008-6-5 13:08:34 | 相关网摘
时间:2008-6-5 13:19:12 | 相关网摘
使用标签:C#,时间:2008-6-5 14:01:43 | 相关网摘
时间:2008-6-5 14:11:25 | 相关网摘
时间:2008-6-5 14:15:14 | 相关网摘
能适合一些小型应用
时间:2008-6-5 14:18:50 | 相关网摘
时间:2008-6-5 15:01:08 | 相关网摘
时间:2008-6-5 15:31:27 | 相关网摘
时间:2008-6-5 16:30:30 | 相关网摘
http://www.codeplex.com/DotNetPageEx
时间:2008-6-5 19:28:58 | 相关网摘
时间:2008-6-5 23:00:11 | 相关网摘
时间:2008-6-5 23:05:42 | 相关网摘
时间:2008-6-5 23:16:32 | 相关网摘
时间:2008-6-5 23:46:01 | 相关网摘
时间:2008-6-6 9:56:12 | 相关网摘
时间:2008-6-6 23:42:21 | 相关网摘
时间:2008-6-7 8:18:28 | 相关网摘
时间:2008-6-8 20:11:14 | 相关网摘
时间:2008-6-8 21:56:02 | 相关网摘
时间:2008-6-10 12:59:40 | 相关网摘
时间:2008-6-10 13:39:55 | 相关网摘
ViewState
时间:2008-6-10 14:46:15 | 相关网摘
时间:2008-6-10 16:58:05 | 相关网摘
时间:2008-6-10 18:19:57 | 相关网摘
ViewState越大可能意味着越有本事
时间:2008-6-12 14:25:36 | 相关网摘
时间:2008-6-16 9:51:47 | 相关网摘
时间:2008-6-19 8:15:23 | 相关网摘
时间:2008-6-26 8:25:41 | 相关网摘
时间:2008-6-26 13:26:56 | 相关网摘
ViewState越大可能意味着越有本事
时间:2008-6-28 11:44:31 | 相关网摘
没有问题,散分贴:如果你必须开发交互式页面,ViewState越大可能意味着越有本事
时间:2008-7-2 11:18:07 | 相关网摘
时间:2008-7-4 8:46:37 | 相关网摘
时间:2008-7-4 23:27:49 | 相关网摘
时间:2008-7-14 11:21:59 | 相关网摘
我们使用服务器端磁盘读的时间来节省服务器通过http从浏览器端读ViewState时间,其结论跟我这个题目要说明的也是一样的。
时间:2008-7-17 22:30:15 | 相关网摘
时间:2008-7-23 13:05:13 | 相关网摘
时间:2008-7-24 9:32:58 | 相关网摘
时间:2008-7-25 0:11:07 | 相关网摘