【如果有现成的开源或免费缓存组件,要告诉我哦】
背景
页面包含许多需要显示数据库数据的控件,每次打开页面的效率都很低
目标
减少页面响应时间,从而提高用户访问速度 缓存应在用户访问页面之前起作用,而不是像ASP.NET窗体/用户控件缓存那样随用户访问被动创建 能提供全局的缓存策略配置 不同的控件各自拥有不同的缓存空间、过期时间及数据更新逻辑
实现
定义一个
应用程序全局缓存服务类,提供
加载缓存策略配置、
按配置初始化缓存(按即调用实现上述接口类的缓存初始化方法)及
访问公共缓存的静态方法 定义一个接口,向
应用程序全局缓存服务提供
缓存初始化及
键值获得的方法调用原型。凡继承此接口的类,在应用程序启动时可由
应用程序全局缓存服务初始化缓存 定义一个数据集架构(xsd),提供缓存配置的持久化数据模型,数据保存于使用此架构的xml文件 制作一个窗体(或用户控件),提供应用程序缓存服务的
运行时管理界面
应用程序全局缓存服务的类定义:
/**/
/// <summary> /// 应用程序全局缓存管理。 /// </summary>
public
class
CacheManager
...
{ public static void InitCache() ...{ // 初始化Cache } public static object LoadCache(string key) ...{ // 获取Cache中的数据,由key生成访问键值 } public static void SaveCache(string key, object data) ...{ // 将数据存入Cache,由key生成访问键值 } }
接口定义:
/**/
/// <summary> /// 向应用程序全局缓存服务提供原型方法调用。 /// </summary>
public
interface
ICachedControl
...
{ string CacheKey ...{ get; } object GetData(); }
未完待续