西安妇科在线问答:内容管理系统(CMS)的设计要点[2]

来源:百度文库 编辑:九乡新闻网 时间:2024/05/03 08:54:18
三、设计要点之三——缓存设计

  最后要注意的是缓存的问题。其实在CMS中的缓存基本上都是使用静态文件的方式。原因基于以下三点:

  其一是CMS作为在后台运行的系统,主要是为前端的系统提供内容,那么我们在实现动态属性的时候是没有办法进一步优化性能的,所以为了提高性能,使用静态文件来缓存是比较好的选择。

  其二是为了CMS的扩展性,很多所谓的CMS系统基本上连网站的功能都包办了,结果不得不使用页面缓存,而我们这里所要设计的CMS系统是可以同时为N个站点提供数据的,所以只能用静态文件。

  其三就是网站的内容添加不是很频繁(论坛,聊天室除外),所以全部更新静态文件的效率是可以接受的。

  所以我们这里选择静态文件来作为缓存的手段。而生成的文件因为性质不一样,其结构和内部的数据也就不一样,比如电影相关的频道应该存储影片名字、长度、播放链接之类的属性,而下载相关的频道应该存储文件的名称、大小之类的属性。所生成的XML或者HTML都是有区别的,所以我们需要一个模板引擎,通过模板依次替换相关的内容。

  由于一个成熟的、稳定且功能强大的模板引擎是不比CMS系统简单的系统,为了在本书中写完这些内容我们不得不在模板系统的设计上放水了。这里我们只实现一个能够将模板里的占位符通过简单的替换方式生成新的文件。如果很荣幸能够在你实现CMS的时候选用这个方案的话请使用成熟的模板系统将这个简陋的模板替换掉:比如可以使用StringTemplate。

  这里我们这个简单得有点简陋的模板类,在我们的想法中它应该具备模板系统的一个最基本的特征和原理——占位符替换。其实换个简单的说法,我们用下面的代码就明白了。

  String TempStr="{$Name}";

  TempStr=TempStr.Replcae("{$Name}","Alex");

  所以其实就是动态根据结果集的内容去替换模板上既定义的占位符。