用户
 找回密码
 入住 CI 中国社区
搜索
楼主: xgdd1987
收起左侧

[核心代码 Core] 有关CI页面缓存问题的终极解决方案

  [复制链接]
发表于 2009-9-21 12:28:27 | 显示全部楼层
顺便问下。。。
如何实现类似smarty 的局部缓存
^_^
发表于 2009-9-21 15:52:41 | 显示全部楼层
过期自动删除?谁都没实现吧?过期的缓存会在下次打开的时候自动更新!
kazaff 发表于 2009-9-21 11:52

过期自动删除是在下次访问的时候触发的
 楼主| 发表于 2009-9-21 16:26:14 | 显示全部楼层
顺便问下。。。
如何实现类似smarty 的局部缓存
^_^
sky8652 发表于 2009-9-21 12:28
你说的局部缓存是指只缓存某个页面吗??如果你只想缓存某个页面,这个都可以啊。。。。
发表于 2009-9-22 17:54:07 | 显示全部楼层
view我觉得还是用smarty好些,那东东功能强悍
发表于 2009-9-27 00:52:07 | 显示全部楼层
本帖最后由 LSvKing 于 2009-9-27 00:56 编辑

这个怎么实现每当数据有改动就更新缓存,而平常不更新呢?
1.是不是在写输出view之前先 $this->output->clear_page_cache 然后在 $this->output->cache?
2.然后还有就是缓存目录结构是怎么安排的 额,忘了看了,原来是控制器+方法名
发表于 2009-10-9 21:06:59 | 显示全部楼层
额,刚给你打了半天回复内容,一个误操作全没了。重打
最近没上线,刚看了你给我回的帖子,吓了我一跳: “我认为身为中国人,写的程序就得兼容中文才行,而不是去禁止用中文。。”,再严重点感觉我都快成汉奸了。
没那么严重,程序安全第一,CI开发者限定那几个字符作为URI应该有安全因素,我不修改为中文有两个原因:
一、你看现在网络链接地址使用中文的还不多,而且我认为至少目前我没打算路径使用中文。
二、如果要传递中文,可以使用GET获得,看贴http://codeigniter.org.cn/forums/thread-692-1-1.html
我挺支持楼主说验证成功信息后再生成缓存。
楼主说我那代码调用失败,我刚又试了,没问题呀!可能楼主在使用时没有看好说明,调用
$this->output->cache_rsegment(4,__FILE__,1);
参数用法看说明http://codeigniter.org.cn/forums/thread-3336-1-1.html
如果没有使用上面的那句的话,效果就是CI默认的缓存效果。
如果还有不明白的再找我。
我这个调用上是有些麻烦,但是增加了安全性,可以防止恶意多传递信息,生成不必要的缓存。
还有,支持楼主说验证信息成功后再生成缓存一说。
 楼主| 发表于 2009-10-9 23:03:35 | 显示全部楼层
16# crgod
哈哈。。
发表于 2010-9-1 16:20:37 | 显示全部楼层
为什么用了你的方法,每次刷新页面,缓存文件都随着变动呢?
发表于 2010-9-4 15:12:55 | 显示全部楼层
这里有没人试过这个方法呀~~晕呀~~按照楼主的方法,的确可以生成文件夹+缓存文件,但是真的能防止缓存攻击吗~~我试了一下,还是会生成好多垃圾缓存文件的,除非自己判断segment的个数
发表于 2010-9-4 17:19:30 | 显示全部楼层
view我觉得还是用smarty好些,那东东功能强悍
Jack 发表于 2009-9-22 17:54



    smarty 再强大,能有 PHP 强大吗?
view 用 PHP 是最强大的,性能也是最好的,可读性也不比 smarty 差。

本版积分规则