hahacc 发表于 2009-3-24 20:34:53

一小部分动态数据,导致整个页面不能缓存。该怎么办呢?

比如,首页大部分数据来自数据库,不是经常更新,但是用户登录时在页面上显示用户信息。如果用户点击退出,虽然后台程序销毁了cookie,但是因为缓存的关系,用户信息仍然显示在首页上,除非缓存的时间,即$this->output->cache(n)设定的时间到了才重新生成缓存。
      现在对这个问题非常迷惑,请问大家该怎么办呢?

hahacc 发表于 2009-3-26 12:17:49

等啊等啊。。。

neversaylate 发表于 2009-3-26 16:30:46

这种情况是不是可以让动态的部分采用iframe或用ajax的方式来做呢?

Hex 发表于 2009-3-26 17:07:53

这个要你自己来做了,CI 没有提供相关的方法。
你可以自己写一个 Cache 类库,PHP 有很多这样的开源类库。

visvoy 发表于 2009-3-27 02:24:01

把动态的部分交给页面内的javascript做

hahacc 发表于 2009-3-29 16:32:15

5# visvoy
交给js也是不行的,因为缓存已经生成了文件。你说是吧。

hahacc 发表于 2009-3-29 16:32:46

3# neversaylate
交给ajax也是不行的,因为缓存已经生成了文件。你说是吧。

neversaylate 发表于 2009-3-29 21:12:10

那么采用iframe呢

visvoy 发表于 2009-3-30 07:58:58

5# visvoy
交给js也是不行的,因为缓存已经生成了文件。你说是吧。
hahacc 发表于 2009-3-29 16:32 http://codeigniter.org.cn/forums/images/common/back.gif
搞笑呢?js就是用来对付这种缓存页面的动态操作

visvoy 发表于 2009-3-30 08:02:29

因为用户要login,login的时候将用户信息写进cookie,logout时候删除
对于已缓存的页面:用javascript:
var userid=get_cookie('userid');
if(userid>0){
document.all.infoBar.innerHTML='欢迎回来,'+get_cookie('username')
}else{
document.all.infoBar.innerHTML='欢迎您,请登录'
}
思路就是这样,早就在用了,根本就ok的,不管是缓存页面还是静态html都可以
页: [1] 2
查看完整版本: 一小部分动态数据,导致整个页面不能缓存。该怎么办呢?