文档里面的缓存和缓存适配器讲的有什么区别?
刚才了解了一下缓存功能。http://codeigniter.org.cn/user_guide/general/caching.html
这里将的缓存使用很方便,只需要在需要使用的地方调用
$this->output->cache(n);
就可以了。
我本地测试也没什么问题。
public function index()
{
$this->output->cache(10);
$this->load->view('welcome_message');
}
这样在第一次访问的时候会在cache目录下生成一个文件。
当下次再访问这个URL的时候就直接输出cache里面的文件了。
如果页面中有一部分的内容需要每次访问的时候更新,就通过ajax来更新。
论坛里面也讨论了如果对URL进行安全判断,防止被恶意攻击。
http://codeigniter.org.cn/user_guide/drivers/caching.html
这个缓存适配器讲的和之前的有什么不同?
另外能不能设置缓存文件永远存在 除非手动删除? 一个是页面缓存,另一个是数据缓存。
你可能会希望把网站的导航菜单从数据库中查询出来,并保存到缓存文件或缓存服务器中,这样可以很大程度上减少对数据库的访问。
而页面缓存则是把控制器输出的结果缓存到了文件中,其中包括了完整的HTML代码。比如你这时候修改了导航菜单的名称并更新了数据缓存,而页面缓存还没有到期,你看到的仍然是之前的页面。
dolphin 发表于 2015-3-9 20:24
另外能不能设置缓存文件永远存在 除非手动删除?
我的印象中数据缓存可以通过把时间设置为0($this->cache->save('config', $config, 0);),使其永不过期。但如果你使用的是类似Memcached的缓存服务有可能缓存服务本身具有强制过期的机制。
而页面缓存必须指定缓存时间,如果使用 $this->output->cache(0); 这样的语句,设置缓存时间为0,则不会生成缓存文件。
还要注意一点是页面缓存的时间单位是分钟,而其他的是秒。
pcjingl 发表于 2015-3-9 23:16
我的印象中数据缓存可以通过把时间设置为0($this->cache->save('config', $config, 0);),使其永不过期 ...
非常感谢。明白了。这么看来对于CMS这样的内容型系统页面缓存比较有用,因为很多页面生成后基本都是固定的html了。
而对于电子商务这样的系统数据缓存比较有用,因为和数据库交互很频繁。
页:
[1]