compile_check=0 false或者0 表示编译检查不开启 1、缓存文件的修改时间 减 它自己上次的修改时间 大于 $Smarty->cache_lifetime时,smarty将会依照以前的编译文件(编译文件不是这次编译的,是早就存在的), 重建 缓存文件。 $Smarty->cache_lifetime是超时的时限。 注意点1、如果不超时,则控制器文件执行到display('filename.tpl')函数时,绕过编译文件, 直接加载缓存文件并输出之,实验证实:保证不超时的情况下, 改变 缓存文件的内容,输出结果是改变过的缓存文件内容。 注意点2、 注意点3、 控制器文件中display('filename.tpl')函数以前代码,如果有““echo等输出”,则和“ display('filename.tpl')函数的输出内容”一起输出, “echo等输出 ” 和缓存没有关系的,只是一段普通php代码的输出结果而已。 2、模板文件修改了的情况下,虽然模板文件被修改,但你不会看到修改结果,因为模板没有得到重新编译,也就是说,编译文件和 缓存文件 永远不会因为模板文件改变了而重建),在 compile_check=0且$force_compile=0设置下, 模板文件不起任何作用,就像被“废置”了 3、虽然编译文件在compile_check=0且$force_compile=0时 设置下,永远不会重建,但是如果手动改变了编译文件的内容,则影响缓存文件的内容( 原因是: 控制器文件是直接加载编译文件进行重建的,不通过加载模板文件重建,这样就不必进行 “模板文件到编译文件的正则替换”了,效率高) |
|