当前位置: 首页 > 编程笔记 >

smarty模板局部缓存方法使用示例

高运诚
2023-03-14
本文向大家介绍smarty模板局部缓存方法使用示例,包括了smarty模板局部缓存方法使用示例的使用技巧和注意事项,需要的朋友参考一下

在开启smarty缓存的情况下,第一次执行时会将其编译好的输出文件保存到cache目录中,然后在程序中通过smarty的is_cache()函数检测其 cache文件是否过期,如果过期会更新缓存,如果没有过期会自动调用cache文件,这样就省去了编译的过程。检测cache过期是看模板文件是否在指定的生命周期内是否更改,这里的更改是通过检测文件的最近修改时间实现的,不是通过检测模板文件内容。


防止一个模板文件的整篇都被缓存:

index.php文件:

require('smarty.class.php'); 
$smarty = new smarty; 
$smarty->caching = true; 

function smarty_block_dynamic($param, $content, &$smarty) { return $content; } $smarty->register_block('dynamic', 'smarty_block_dynamic', false);

$smarty->display('index.tpl');


index.tpl:

page created: {"0"|date_format:"%d %h:%m:%s"} 

{dynamic}

now is: {"0"|date_format:"%d %h:%m:%s"}

... do other stuff ...

{/dynamic}

当重新加载这个页面,你将会注意到这两个日期不同。一个是“动态“,一个是“静态”。你能够在{dynamic}...{/dynamic}之间作任何事情,并且保证它将不会像剩下的页面一样被缓存。

 类似资料:
  • 本文向大家介绍Smarty局部缓存的几种方法简介,包括了Smarty局部缓存的几种方法简介的使用技巧和注意事项,需要的朋友参考一下 很多时候我们在用smarty时,并不希望缓存整个页面,例如天气、股票等这类即时更新的信息。那么我们可以让其不缓存,常见的实现有如下3种方法: 1.insert 法: Insert 函数类似于 inluce 函数,不同之处是 insert 所包含的内容不会被缓存,每次调

  • 本文向大家介绍Smarty模板简单配置与使用方法示例,包括了Smarty模板简单配置与使用方法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Smarty模板简单配置与使用方法。分享给大家供大家参考,具体如下: 在Smarty目录中建立templates,templates_c,configs,cache目录。以便Smarty进行编译和缓存。 建立smarty_inc.php文件对sm

  • 本文向大家介绍smarty模板的使用方法实例分析,包括了smarty模板的使用方法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了smarty模板的使用方法。分享给大家供大家参考,具体如下: 这里以smarty3为例 首先, 在官网下载smarty3模板文件,然后解压。 在解压之后的文件夹中,libs是smarty模板的核心文件,demo里面有示例程序。 我们把libs文件夹复制到

  • 本文向大家介绍smarty缓存机制?相关面试题,主要包含被问及smarty缓存机制?时的应答技巧和注意事项,需要的朋友参考一下 如果开启了缓存,smarty同时生成一份静态的html页面,如果在设定的时间没有过期,再次访问的时候,你访问的就是是html文件了,减少了读取数据库,所以就效率来说,要高一些。

  • 本文向大家介绍PHP Smarty模版简单使用方法,包括了PHP Smarty模版简单使用方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP Smarty模版简单使用方法。分享给大家供大家参考,具体如下: Index.php: index.tpl: 后记:如何让VS支持tpl扩展名的HTML编辑 在菜单[工具>选项]中设置,如下图: 更多关于PHP相关内容感兴趣的读者可查看本站专题

  • 7.11. 模板缓存 代码中有一个低效率的地方:每次显示一个页面,renderTemplate都要调用ParseFile。更好的做法是在程序初始化的时候对每个模板调用ParseFile一次,将结果保存为*Template类型的值,在以后使用。 首先,我们创建一个全局map,命名为templates。templates用于储存*Template类型的值,使用string索引。 然后,我们创建一个in