IBuySpy Portal 中使用 PortalModuleControl 这个继承自UserControl的类来作为站点中所有Module的基类,用户控件的工作方式是,当页面上实例化一个用户控件时,自动将它的所有子控件全部Render成HTML,然后输出,为了提高Module的工作效率,每个Module可以设置自己的缓存时间,在缓存时间内,系统不会再重复Render它的所有子控件,而是在第一次Render的时候,把结果HTML文本缓存起来,当下次需要的时候再直接输出。   实现缓存功能,IBuySpy是通过CachedPortalModuleControl实现的。   因为IBuySpy页面上的Module都是通过LoadControl()方法来动态载入到页面上的,像这样:   PortalModuleControl portalModule = (PortalModuleControl) Page.LoadControl(_moduleSettings.DesktopSrc);   portalModule.PortalId = portalSettings.PortalId;portalModule.ModuleConfiguration = _moduleSettings;   parent.Controls.Add(portalModule);   当检测到一个Module的CacheTime>0时,代码则:   CachedPortalModuleControl portalModule = new CachedPortalModuleControl();   portalModule.PortalId = portalSettings.PortalId;portalModule.ModuleConfiguration = _moduleSettings;   parent.Controls.Add(portalModule);   就是说,代码不会再载入PortalModuleControl类型的控件了,而是载入CachedPortalModuleControl来实现的。   下面看看CachedPortalModuleControl是如何实现缓存的:   private String _cachedOutput = “”;   这里定义了一个String变量,保存缓存的内容   protected override void [...]前几天看IBuySpy时记在OneNote里面的笔记

相关文章:

  • 2021-08-10
  • 2021-04-03
  • 2021-11-11
  • 2021-12-22
  • 2021-11-07
  • 2021-09-28
  • 2022-12-23
  • 2021-08-27
猜你喜欢
  • 2021-12-23
  • 2021-12-11
  • 2021-04-30
  • 2021-12-09
  • 2022-01-17
  • 2021-04-08
  • 2021-10-14
相关资源
相似解决方案