smarty局部缓存技术3种方法

  1,insert 法
定义一个函数显示时间的:
Php代码
  1. function insert_get_current_time(){   
  2.     $timestamp=emptyempty($timestamp)?time():$timestamp;   
  3.     $timeoffset=(int) '+8';   
  4.     return $ret=gmdate("Y-n-j g:ia"$timestamp + $timeoffset * 3600);   
  5. }  
function insert_get_current_time(){
    $timestamp=empty($timestamp)?time():$timestamp;
    $timeoffset=(int) '+8';
    return $ret=gmdate("Y-n-j g:ia", $timestamp + $timeoffset * 3600);
}

 

然后在模板中:

{insert name="get_current_time"}
这样每次打开页面,显示的都是即时时间,而不是缓存的。注意这里的函数名一定要以insert开头,模板中的name与之对应。
这种方法简单,但是如果要显示的内容是一大块的,就不宜使用了。
2,动态block 法
Php代码
  1. function smarty_block_nocache($param$content$smarty)   
  2.  {   
  3.     return $content;   
  4. }   
  5. $smarty->register_block('nocache''smarty_block_nocache', false);  
function smarty_block_nocache($param, $content, $smarty)
 {
    return $content;
}
$smarty->register_block('nocache', 'smarty_block_nocache', false);
 在模板中:
Php代码
  1. {nocache}   
  2. {$smarty.now}   
  3. {/nocache}  
{nocache}
{$smarty.now}
{/nocache}
 

这样每次刷新页面,显示的时间都是不同的。

3,插件block 法
在Smarty/plugins目录下建一个文件
block.nocache.php 内容如下:

 

Php代码
  1. <?php    
  2. function smarty_block_nocache($param$content$smarty)   
  3. {   
  4.       return $content;    
  5. }     
  6. ?>  
<?php 
function smarty_block_nocache($param, $content, $smarty)
{
      return $content; 
}  
?>
  这样做与方法2的效果是一样的,模板中标签也一样。在 php文件中就不必要再register_block了,很方便。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值