- 积分
- 127886
- 在线时间
- 小时
- 注册时间
- 2010-9-23
- 最后登录
- 1970-1-1
|
自古以来, 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文件,显示的却还是原来的版本, 而修改以后,检测以后会重新生成主体,而此时, 旧版本还没有被载入, 而且他永远也没有被再次载入的机会了.....
|
|