对于网站管理员
页面级别的缓存
- 位置:系统自带,插件管理,系统插件 - 缓存
- 缓存的内容:该扩展会缓存页面的所有内容,将这些内容存储在文件中,以此来加速网站
- 基于:该扩展基于URL.每一个URL对应一个缓存文件。如果没有缓存文件就将该页面缓存,让后发送给浏览者。如果有缓存,就直接将缓存文件发送给浏览者。
- 更多信息:
- 可以配置是否使用浏览器本身的缓存功能来保存缓存文件。
- 该插件只缓存访客浏览过的页面。不缓存注册用户浏览的页面。
视图级别的缓存
- 位置:系统全局配置 缓存
- 缓存的内容:组件的每一个视图。注意,不是页面。
- 基于:URL,视图,参数 还有一些其他的内容
- 更多信息:
- 组件的开发者必须在他们的扩展中使用JCacheAPI,,才能使用该功能。(joomla核心扩展使用得比较多,但其他的第三方扩展使用的比较少)。joomla核心的文章组件就是用这个功能,他能够缓存访客看到的视图。
模块级别的缓存
- 位置:全局配置 缓存
- 缓存的内容:每一个模块的输出。
- 基于:?
- 更多信息:
- 你应该知道,如果有一个模块显示的效果并不是你所期待的,那么有可能是这个缓存引起的。
更多缓存
- 这个和第三方扩展系统有关。现在已经有很多这类的插件。效果还不错。
缓存引擎(存储)
- 位置:全局配置 缓存
- 更多信息
- 你可以选择哪一种方式来缓存。当前可用的有APC ,Eaccelorator ,File,Memcache,XCache.
对于开发者
Joomla提供了JCache类,来处理缓存相关的内容。使用这个类,你可以灵活的操作缓存。我们可以使用JCache类,也可以让自己的类派生自JCache,来实现更多操作。Don't forget that the first level of cache encountered, will override any deeper caching. I suppose that too many levels is also counterproductive (to be verified though).
- JCacheView 将会缓存视图中的输出。
系统会自动依据URL或者产生一个缓存ID。specific view and its specific method, or you can give your own.
这个缓存可以自动的在控制器的display方法中完成。你只需要在你的控制器中使用如下的代码就行了
class ZMAXController extends JController {
function display(){
parent::display(true); //true 表示需要缓存
}
}
- JCachePage 缓存并且返回页面的主体部分
- JCacheCallback 缓存函数或者方法的输出结果
- JCacheOutput 缓存输出
这个相对缓存指定php代码的输出,有点类似于输出缓冲处。