• 前几天看IBuySpy时记在OneNote里面的笔记


    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 [...]
  • 相关阅读:
    我们工作到底为了什么
    阿里云是如何做好高并发的
    织梦cms PHPcms 帝国cms比较
    正确修改MySQL最大连接数的三种好用方案
    微信开发的几个小功能
    命令行下运行php的方法和技巧
    PHP去除连续空格
    ajax,django
    web框架,HTTP协议
    Django 模型Model层2
  • 原文地址:https://www.cnblogs.com/kaneboy/p/2333682.html
Copyright © 2020-2023  润新知