为什么需要缓存,缓存的目的就是加速页面的载入,因此使用缓存之后,你的请求将会直接去获取html文件,传统的动态页面从数据库中获取数据,然后用程序将数据显示出来的这个过程就被绕过去了,而这个过程是最消耗系统资源的过程,静态页面传送过程中,系统I/O所占用的资源相比之下就可以忽略了。当然,更传统的其实还是静态页面,因为它出现在动态页面之前。有人说用缓存更新不及时,不够快,所以很不方便,这也是很有道理的,但是仅仅是因为这样就放弃使用缓存,或许不太划算,特别是在你服务器压力比较大的情况下。就说wordpress吧,他的这点交互,完全可以不用担心这点,你依然可以使用缓存插件,为了更好的说明这个问题,我下面来假设一个完美的缓存系统。
如果一个缓存,让你感觉不到它的存在,那么这个缓存需要有什么样的特点呢?感觉不到存在的前提是凡是需要变化的地方都必须在适当的时候有变化,实时的东西都必须实时,这样才能保证和动态页面一致。所以如果一个缓存,在页面需要变化的时候都能够更新自己,那么这个缓存就是一个完美的缓存了,要真正达到这个目的,也未必没有可能,实现的难易度和需要缓存的系统相关。举一个简单的例,如果你有一个留言系统,显示的仅仅是留言的姓名、日期以及内容,那么我们可以做这样一个缓存,在留言完毕更新缓存,因为这个页面有实时变化需求的仅仅是必须显示新的留言,你的缓存做到了,这样用户一定感觉不到缓存的存在。因此同样的思想,我们可以用在wordpress上面。
Wordpress中,流量最大的应该是单一的内容文章(后面用post表示文章)和页面(后面的内容用page表示页面),因此在cos-html-cache中,它只缓存了post和page。Cos-html-cache没有采用类似WP-cache的定时更新有两个原因:1.post和page有自身的触发事件,不需要定时,想想,如果页面都没有变化你去定时更新它干吗,不是做无用功么;2.定时更新效率比较低,因为cos-html-cache插件采用的cache思想是:有改变则删除cache,当页面被下一个第一次访问的时候则自动建立缓存。如果你的blog访问不多,定时更新导致的结果将是被访问的页面基本都是没有被缓存的,因为已经被定时被删除了,这样的话缓存插件没有一点效果,反而是个累赘。
那么把wordpress静态化是不是很得不偿失呢?有的时候是,但是对于大多数blog答案是否定的。用前面的思想考虑一下,我们的动态的wordpress的post页面和page什么时候有改变?如果没有评论,对应的页面是不是不会有任何变化?再想一想什么时候页面需要发生变化?1.有新文章发布的时候,这样会导致上一篇和下一篇这样导航出现变化;2.留言之后,这样会导致评论框有所变化;3.文章被修改的时候;4.文章被删除的时候;5.其他的一些插件引起的变化…… 而cos-html-cache这个插件在wordpress基本功能中所出现文章改变的时候,都对缓存进行了更新,所以对于blog而言,这个插件几乎对更新没有任何影响。
当然,如果你安装了统计插件,而这个插件是基于php的,那则表示文章每次被访问,就得要更新数据,这样cos-html-cache就不适合使用了,确实如此。不过有解决办法,那就是采用js调用的方式来更新数据,所以,如果大家有类似的插件,可以告诉我,我可以把它改成js调用的模式,如果有时间的话。
上面已经说得算是清楚了,所以采用不才用,由你决定,如果你blog的访问量不是很大,并且又是host在72pines(bloggermap的好伙伴)飞快的虚拟主机上,完全可以不使用此插件,当然zhiqiang这样对速度有太多追求的blogger除外,他那简约的界面+飞快的虚拟主机,依然采用了缓存。
该日志未加标签看到有朋友警告大家别轻易使用缓存,当然包括WP-cache,所以我写下了我自己的看法,仅作参考,也欢迎朋友一起讨论.

WP-PostViews用了COSHTMLCACHE好像就没有什么效果了,能改成JS的吗?插件地址是http://www.lesterchan.net/
[r]不止一人提出这个插件的JS化需求了,过两天有空我就看看,应该问题不大[/r]