找回密码
 注册加入

扫一扫,极速登录

QQ登录

只需一步,快速开始

搜索
查看: 5820|回复: 4

超方便, 让 X 永远只刷新一次即可看到模板修改效果

[复制链接]
发表于 2011-4-4 14:10:15 | 显示全部楼层 |阅读模式
自古以来, X 就是模板修改以后必须在浏览器里刷新两次才能看到修改效果, 下面这个小修改可以让你永远从不厌其烦的重复刷新解脱出来, 只需刷新一次,马上出效果, 而且, 最妙的是, 不会产生任何性能损失....

source/class/class_template.php 查找

  1.                 if(!empty($this->blocks)) {
  2.                         $headeradd .= "\n";
  3.                         $headeradd .= "block_get('".implode(',', $this->blocks)."');";
  4.                 }
复制代码

在这里的前面,添加...

  1. //foolant
  2. if(!@$fp = fopen(DISCUZ_ROOT.$cachefile, 'w')) {
  3. $this->error('directory_notfound', dirname(DISCUZ_ROOT.$cachefile));
  4. }
  5. $cachefile = dirname($cachefile).'/#'.basename($cachefile);
  6. $content = "<? if(!defined('IN_DISCUZ')) exit('Access Denied'); {$headeradd}\n include DISCUZ_ROOT.'$cachefile';\n?>\n";
  7. flock($fp, 2);
  8. fwrite($fp, $content);
  9. fclose($fp);
  10. $headeradd = '';
复制代码

搞定, 简单吧...原理就是把缓存文件一拆为二, 一个负责检查更新,另一个才是主体, 产生二次刷新的原因是虽然检测到了更新但是因为主体已经载入,即使更新php文件,显示的却还是原来的版本, 而修改以后,检测以后会重新生成主体,而此时, 旧版本还没有被载入, 而且他永远也没有被再次载入的机会了.....

发表于 2011-5-26 03:00:01 | 显示全部楼层
好!
回复 支持 反对

使用道具 举报

发表于 2011-6-8 09:11:43 | 显示全部楼层
楼主太厉害了!楼主,I*老*虎*U!
Discuz扩展中心好 才是真的好
回复 支持 反对

使用道具 举报

发表于 2011-6-10 09:27:51 | 显示全部楼层
湖中沉 咨询个事,能不能把扩展中心的viewthread.htm这个文件给我啊,就是为了实现本站的主题那的显示效果
回复 支持 反对

使用道具 举报

发表于 2011-6-10 22:38:02 | 显示全部楼层
楼主太厉害了!楼主,I*老*虎*U!
Discuz扩展中心就是我的家!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册加入  

本版积分规则

Archiver|手机版|小黑屋|Discuz!扩展中心 ( 浙ICP备14042422号-1 )|网站地图QQ机器人

GMT+8, 2024-4-29 14:49 , Processed in 0.167758 second(s), 14 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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