用户
 找回密码
 入住 CI 中国社区
搜索
查看: 6363|回复: 17
收起左侧

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

[复制链接]
发表于 2009-3-24 20:34:53 | 显示全部楼层 |阅读模式
比如,首页大部分数据来自数据库,不是经常更新,但是用户登录时在页面上显示用户信息。如果用户点击退出,虽然后台程序销毁了cookie,但是因为缓存的关系,用户信息仍然显示在首页上,除非缓存的时间,即$this->output->cache(n)设定的时间到了才重新生成缓存。
      现在对这个问题非常迷惑,请问大家该怎么办呢?
 楼主| 发表于 2009-3-26 12:17:49 | 显示全部楼层
等啊等啊。。。
发表于 2009-3-26 16:30:46 | 显示全部楼层
这种情况是不是可以让动态的部分采用iframe或用ajax的方式来做呢?
发表于 2009-3-26 17:07:53 | 显示全部楼层
这个要你自己来做了,CI 没有提供相关的方法。
你可以自己写一个 Cache 类库,PHP 有很多这样的开源类库。
发表于 2009-3-27 02:24:01 | 显示全部楼层
把动态的部分交给页面内的javascript做
 楼主| 发表于 2009-3-29 16:32:15 | 显示全部楼层
5# visvoy
交给js也是不行的,因为缓存已经生成了文件。你说是吧。
 楼主| 发表于 2009-3-29 16:32:46 | 显示全部楼层
3# neversaylate
交给ajax也是不行的,因为缓存已经生成了文件。你说是吧。
发表于 2009-3-29 21:12:10 | 显示全部楼层
那么采用iframe呢
发表于 2009-3-30 07:58:58 | 显示全部楼层
5# visvoy  
交给js也是不行的,因为缓存已经生成了文件。你说是吧。
hahacc 发表于 2009-3-29 16:32

搞笑呢?js就是用来对付这种缓存页面的动态操作
发表于 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都可以

本版积分规则