• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

请问SMARTY 发帖后clearCache 文章列表的逻辑

php 搞代码 3年前 (2022-01-24) 38次浏览 已收录 0个评论

请教SMARTY 发帖后clearCache 文章列表的逻辑
文章列表的samrty代码如下

<br />$smarty -> setCacheDir(R<span style="color:transparent">~来1源gaodai#ma#com搞*代#码1网</span><abbr>搞代gaodaima码</abbr>OOT_PATH."/cache/forum");<br />$smarty -> display("$module/list.html",$_SERVER["REQUEST_URI"]);

ROOT_PATH = 我的根目录
$module = 我PHP开头会自定当前是什么模组,自己找模板中的子目录

因为文章多, 架构多, 不同的模组也多…所以想到把cache 和 template都做成子目录
template子目录为了方便找文件
cache子目录…是因为怕同一个目录中文件过多,分子目录也会以便我按照不同的模组清理缓存

我在display加入了一句:$_SERVER[“REQUEST_URI”]

因为是分页,还有可能是其他的变量

我页面上暂时最多有可能有3个参数 list.php?fid=1&type=20&page=3

fid=栏目 (必定有)
type=主题分类 (看情况, 有些页面有, 有些页面没有)
page=当前页面 (必定有)

因为参数不同,所以也可能生成不同的文件

使用smarty主要就是为了减轻数据库压力

问题一.

我在一个名为post.php的页面发表文章

发表完成时会有一些基本的数据,好比$fid = 1 (栏目id),我就想用此栏目id,把当然栏目的cache 清理

就是这个: list.php?fid=1&type=20&page=3

有办法有所有fid = 1有关的都清理吗?

就是只要fid = 1 ,不管其他参数type=100还是type=5,还有所有page=xxx的都更新吗?

问题二.
SMARTY官方 和网上搜到的简介….
清空CACHE只有这一句

clear_cache('index.tpl',cache_id);//清除指定id的缓存

并不能清空指定的目录
因为上面也解释过我是有用模板子目录的

问题三.
经验一问

如果我想更实时一点,网站又蛮多人上的,我把解决问题一和问题二,反而把samrty cache时间设成10秒

那如果是一个长期有500~2000人的网站,用户常常留言/交流的网站

我设成10秒左右的缓存会不会比起不缓存更大压力???

我这种情况大家会把流量写得更…每次回帖/发文章都清空缓存,还是直接放弃缓存?

不好意思,已经没什么分献给各位大哥了

诚心求学
——解决方案——————–
比較奇怪,既然你比較注重的是實時,那就不應用緩存了。
即使要用緩存,那都需要每執行完一個事件後,對應的緩存就必須重新生成。才能達到實時的效果。

對於文章列表,如果你一天內,每分鐘都會增加或修改新文章的。那緩存的作用就不大。

如果是一天內,可能新增的文章與修改數不多。那可以在後臺做一個功能。調用則清一次列表的緩存。

其實保存緩存的路徑,目錄規則你都知道,完全可以自己寫一個清cache的類實現啊,為甚麼要糾結用smarty自帶的呢?
smarty是按cacheid做判斷的,不適合你的情況。
——解决方案——————–
这与你的具体应用是有关系的
论坛总是要把新帖和有新回复的放在前面,以引起注意
所以缓存就没有意义了


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:请问SMARTY 发帖后clearCache 文章列表的逻辑

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址