昨天有朋友说,使用PageAdapter要比BasePage好,使用PageAdapter便于统一管理和配置,这次我用PageAdapter实现同样的效果,同时也对原来的代码也做了一些修改,使之性能有所提升。
读取控件状态,不是直接从数据库读取,而是先去状态池中查找,如果状态池中不存在,我们再访问数据库。
保存的过程和读取的过程相对应,控件状态先保存至状态池,当状态池满时,将其中的部分元素保存只数据库。
状态池中的元素都是未序列化的,这样就避免了序列化和反序列化带来的性能问题。


下边是继承PageAdapter的类,当页面的EnableViewState为true时,调用我们自定义的类(DataBasePageStatePersister),否则调用基类的实现。


我们还需要在应用程序浏览器目录App_Browsers,然后在其中建立浏览器文件,文件的内容如下:
将视图状态存入数据库(3)<!--
将视图状态存入数据库(3)可在 <windir>\Microsoft.NET\Framework\<ver>\CONFIG\Browsers 中找到现有的浏览器定义
将视图状态存入数据库(3)
-->
将视图状态存入数据库(3)
<browsers>
将视图状态存入数据库(3)  
<browser refID="Default" >
将视图状态存入数据库(3)    
<controlAdapters>
将视图状态存入数据库(3)      
<adapter
将视图状态存入数据库(3)          
controlType="System.Web.UI.Page"
将视图状态存入数据库(3)          adapterType
="JianCaiWeb.Utils.DataBasePageAdapter" />
将视图状态存入数据库(3)    
</controlAdapters>
将视图状态存入数据库(3)  
</browser>
将视图状态存入数据库(3)
</browsers>

相关文章:

  • 2021-04-14
  • 2021-12-26
  • 2022-12-23
  • 2022-01-12
  • 2022-02-19
  • 2021-11-05
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-08-26
  • 2021-05-23
  • 2022-01-15
  • 2021-07-28
  • 2022-01-25
  • 2022-12-23
  • 2022-01-31
相关资源
相似解决方案