ASP.NET2.0页面状态持续
来源:互联网 发布:mac os x更新到10.10 编辑:程序博客网 时间:2024/05/22 13:24
我们知道,http是无状态的协议.所以在进行WEB应用程序开发的过程中,怎么在用户的多次请求中保持页面/用户信息会给我们造成一些小麻烦.ASP.NET1.1为我们提供了诸如ViewState,Session...等方式,在ASP.NET2.0中,则对这些方式进行了一些改进和扩展.
- ViewState
在ASP.NET1.1中,ViewState是通过客户端的html中的一个隐藏字段在客户端和服务器端进行信息的来回传送.这就会存在一个问题:如果信息量过大,这种数据的来回传递将会严重的影响程序的性能.(至今还记得,原来项目中的某处,客户需要一次显示2W多条数据在同一个页面上-----BT的需求.这个时候,由于页面的DataGird中的大量数据,使得在PostBack的时候直接把IIS给"干掉"了)一般对于这种BT的情况,在ASP.NET1.1中,我们会禁用DataGird中的ViewState,然后每次PostBack都重新进行绑定.如今,在ASP.NET2.0中提供了一种新的方式:将ViewState的数据保存在服务器端的Seesion中.我们的程序只需要做如下一点小小的改动.在需要将ViewState的数据放到服务器Seesion的页面中,重写PageStatePersister属性,如下:
protected override PageStatePersister PageStatePersister { get { //return base.PageStatePersister; return new SessionPageStatePersister(this); } }
这样,我们仍然可以按照原来的编码方式对ViewState进行操作,就象他仍然是在B/S之间来回传递.但是性能却能显著提高. - Session
OK.上面提到了Session,我们也知道Seesion存储在服务器端,如果Seesion中的保存了大量数据,也会影响程序整体的性能.现在,我们还可以把Session放到数据库中.也相当的简单.我们只需要通过VS2005提供的ASPNET_REGSQL.EXE工具生成一个专门存放Session的数据库.然后,在我们的Web.config里面做如下配置:
<sessionState mode="SQLServer" sqlConnectionString="data source=.; integrated security=true"> sessionState>
同样,在编码的时候,我们仍然可以按照原来的方式进行,Asp.net2.0会帮我们把Session的信息保存在数据库中.当然和原来方式相比,加入了一个数据库的开销,可能性能方面还不知道孰优孰劣,不过通过数据库的持久化,我们就可以解决原来的Session过期的问题,而且通过数据库,可能在数据安全方面会得到提高.另外,我总觉得可以把Session中数据持久化这个功能可以派上大用场,但现在一直想不到一个适合的场景,也没看到相关的文章,就是一个感觉:)要注意的一点就是:因为Session中的数据要持久化到数据库中,所以,当我们把一些自定义的类往Session中放的时候,一定要记得给这个类打上[Serializable]!
正所谓,凡事都没有完美的解决方案,Asp.net2.0为我们提供的新的页面持续的方法也不是完美的,至于孰优孰劣,就只有看具体的应用场合了.
- ASP.NET2.0页面状态持续
- ASP.NET 2.0 页面状态持续程序
- ASP.NET 2.0 页面状态持续程序
- asp.net2.0的状态存储机制
- ASP.net2.0中如何处理状态
- Asp.net2.0 页面缓存技术
- Asp.net2.0 页面缓存技术
- Asp.net2.0页面的生命周期
- Asp.net2.0页面执行顺序
- 图形验证码页面Asp.Net2.0
- Asp.net2.0页面执行顺序
- asp.net2.0的跨页面提交
- asp.net2.0跨页面传送
- Asp.net2.0页面的生命周期【转】
- ASP.NET2.0的异步页面刷新
- ASP.NET2.0的异步页面刷新
- asp.net2.0 页面生命周期方法
- 设置ASP.NET2.0页面缓存时间
- 希网网络动态域名
- AJAX和SOAP——异步数据和XML获取
- 自己动手编译Mozilla Firefox和ThunderBird
- 解析极限编程--拥抱变化(第二版)读书笔记
- 2007年Jolt大奖入围产品揭晓
- ASP.NET2.0页面状态持续
- 阅读>心得(1)
- 我开技术博客了
- 2007年1月19日、终于把汇编书看完了!
- 不想单打独斗——怀念211
- directDraw 使用心得。
- AN ESSAY WRITING METHOD 如何写作
- 章三 软件测试的本质
- “IT民工”折射中国软件业“劳动密集”尴尬(转载)