湖中沉 发表于 2011-4-4 14:10:15

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

自古以来, X 就是模板修改以后必须在浏览器里刷新两次才能看到修改效果, 下面这个小修改可以让你永远从不厌其烦的重复刷新解脱出来, 只需刷新一次,马上出效果, 而且, 最妙的是, 不会产生任何性能损失....

source/class/class_template.php 查找

                if(!empty($this->blocks)) {
                        $headeradd .= "\n";
                        $headeradd .= "block_get('".implode(',', $this->blocks)."');";
                }
在这里的前面,添加...

//foolant
if(!@$fp = fopen(DISCUZ_ROOT.$cachefile, 'w')) {
$this->error('directory_notfound', dirname(DISCUZ_ROOT.$cachefile));
}
$cachefile = dirname($cachefile).'/#'.basename($cachefile);
$content = "<? if(!defined('IN_DISCUZ')) exit('Access Denied'); {$headeradd}\n include DISCUZ_ROOT.'$cachefile';\n?>\n";
flock($fp, 2);
fwrite($fp, $content);
fclose($fp);
$headeradd = '';
搞定, 简单吧...原理就是把缓存文件一拆为二, 一个负责检查更新,另一个才是主体, 产生二次刷新的原因是虽然检测到了更新但是因为主体已经载入,即使更新php文件,显示的却还是原来的版本, 而修改以后,检测以后会重新生成主体,而此时, 旧版本还没有被载入, 而且他永远也没有被再次载入的机会了.....

唐仁 发表于 2011-5-26 03:00:01

好!
{:4_105:}

狸猫亦太子 发表于 2011-6-8 09:11:43

楼主太厉害了!楼主,I*老*虎*U!
Discuz扩展中心好 才是真的好

夜未央 发表于 2011-6-10 09:27:51

湖中沉 咨询个事,能不能把扩展中心的viewthread.htm这个文件给我啊,就是为了实现本站的主题那的显示效果

sz532 发表于 2011-6-10 22:38:02

楼主太厉害了!楼主,I*老*虎*U!
Discuz扩展中心就是我的家!
页: [1]
查看完整版本: 超方便, 让 X 永远只刷新一次即可看到模板修改效果