当前位置:  编程技术>php

Smarty局部缓存的几种方法简介

    来源: 互联网  发布时间:2014-08-26

    本文导语:  很多时候我们在用smarty时,并不希望缓存整个页面,例如天气、股票等这类即时更新的信息。那么我们可以让其不缓存,常见的实现有如下3种方法: 1.insert 法: Insert 函数类似于 inluce 函数,不同之处是 insert 所包含的内容不会...

很多时候我们在用smarty时,并不希望缓存整个页面,例如天气、股票等这类即时更新的信息。那么我们可以让其不缓存,常见的实现有如下3种方法:

1.insert 法:

Insert 函数类似于 inluce 函数,不同之处是 insert 所包含的内容不会被缓存,每次调用该模板都会重新执行该函数。比如说我们定义一个显示时间的函数:

代码如下:

function insert_get_current_time() {
return date("H:i:s");
}
//然后在模板中:
{insert name="get_current_time"} 

这样每次打开页面,显示的都是即时时间,而不是缓存的。注意这里的函数名一定要以insert开头,模板中的name与之对应。如果我们的函数包含一些参数,那么我们的在模板中可以这样:

代码如下:

{insert name="get_current_time" lid=#banner_location_id# sid=#site_id#}
//那么Smarty 调用该函数类似insert_get_current_time(array("lid"=>"12345","sid"=>67890"));

并将返回的结果显示在调用的位置。

2.动态block 法:

在smarty代码中:

代码如下:

function smarty_block_nocache($param,$content,$smarty)   
{
return $content;
}
$smarty->register_block('nocache','smarty_block_nocache',false);

在模板文件中:

代码如下:

    //这里放不需要被缓存的内容

3.插件block法:

 这个跟block差不多,只是我们将其以插件的形式来做。在Smarty/plugins目录下建一个文件:block.nocache.php,这里命名一定要规范,否则smarty识别不了。 内容如下:

代码如下:

function smarty_block_nocache($param,$content,$smarty)
{
return $content;

在模板中和上面一直,不需要被缓存的地方加上nocache就可以了!


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Smarty模板学习笔记之Smarty简介
  • PHP模板引擎smarty生成随机数 smarty中math函数用法
  • smarty获得当前url的方法分享
  • Smarty辅助开发工具 SmartyPDT
  • smarty获得当前url示例代码
  • sae使用smarty模板的方法
  • angular-smarty
  • Smarty变量调节器失效的解决办法
  • smarty模板中拼接字符串的方法
  • ThinkPHP使用smarty模板引擎的方法
  • PHP模板引擎 Smarty
  • smarty中使用php函数的方法
  • smarty模板中get、post、request、cookies、session变量用法
  • smarty模板中使用get、post、request、cookies、session变量的方法
  • smarty-xss
  • php smarty truncate UTF8乱码问题解决办法
  • PHP中使用smarty生成静态文件的例子
  • 在PHP模板引擎smarty生成随机数的方法和math函数详解
  • php smarty模板引擎实用技巧
  • php结合smarty生成静态页面 php文章内分页代码
  • Java模板引擎 smarty4j


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3