Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索
12
返回列表 发新帖

[已答复] <!--{eval $cachetime = 1800+30*$ckey;}--> 是为了增加缓存时间?

[复制链接]
littlehz 发表于 2009-11-2 16:07:35 | 显示全部楼层
本帖最后由 littlehz 于 2009-11-2 16:09 编辑

<!--{eval $cachetime = 1800+30*$ckey;}-->
这一句,本身只是赋值,不会递增。
ckey变量放在loop之外,也只是一个固定值,不会递增,但是放在loop中就会自动增加了。

但是放到loop循环中,因为每次循环$ckey会增加,所以$cachetime也会增加。

其作用就是对news_index页面中,每个取分类的模块设置不同的缓存(时间相差不大,基本不影响更新)。效果是因为每个模块有不同的缓存时间,避免同一页面因为缓存失效而更新大量的模块,每个模块都有一定的缓存时间差,一次更新的模块不会很多,提高页面执行效率。

如图所示,加上这些代码输出看效果。
1.jpg
2.jpg
回复

使用道具 举报

 楼主| miqi2 发表于 2009-11-2 16:18:30 | 显示全部楼层
本帖最后由 miqi2 于 2009-11-2 16:21 编辑
这一句,本身只是赋值,不会递增。
ckey变量放在loop之外,也只是一个固定值,不会递增,但是放在loop中 ...
littlehz 发表于 2009-11-2 16:07


恩 非常感谢你的回答,我开始也是这么猜测的,感谢为我解惑。希望littlehz空闲 写一些此类教程,毕竟康盛教程太少了。
这样每分割三十秒更新一个模块,我觉得好像还是频繁了点,一次性貌似。。。解决得还快点。
回复

使用道具 举报

littlehz 发表于 2009-11-3 10:06:20 | 显示全部楼层
12# miqi2


    这是基础的PHP知识,请查阅PHP相关资料,谢谢。   每个模块设置更新时间差,有助于降低服务器压力,试想如果这个网站下面有上百个资讯分类,这上百个分类的模块缓存同时失效,访问时需要一次性更新所有缓存,那么这短时间内服务器压力会很大,把压力分散到不同的时间点是比较好的处理办法。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-9-15 21:44 , Processed in 0.122983 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表