smarty局部缓存技术

其实我以前只是听过smarty的大名,并没有使用之。
最近做一个叫BlogShow的程序,想到用smarty来实现代码与表现的分离。于是慢慢边学边用,对它有了一定的了解。
发现smrty 是如此强大与神奇的一个东东,使我对它的好感不亚于对TP.
由于我默认是开启smarty的缓存的,但是在些地方的数据是实时更新或者更新较快的,不宜缓存,这样,局部缓存便有用武之地了。
1,insert 法
定义一个函数显示时间的:

1
2
3
4
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 ) ;
}

然后在模板中:

1
{insert name="get_current_time"}

这样每次打开页面,显示的都是即时时间,而不是缓存的。注意这里的函数名一定要以insert开头,模板中的name与之对应。
这种方法简单,但是如果要显示的内容是一大块的,就不宜使用了。

2,动态block 法

1
2
3
4
5
6
//部分缓存
function smarty_block_nocache ( $param , $content , $smarty )
  {
    return $content ;
}
$smarty -> register_block ( 'nocache' , 'smarty_block_nocache' , false ) ;

在模板中:

1
2
3
{nocache}
{$smarty.now}
{/nocache}

smarty_partly_cache

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

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

1
2
3
4
5
6
<?php
function smarty_block_nocache ( $param , $content , $smarty )
{
      return $content ;
}  
?>

这样做与方法2的效果是一样的,模板中标签也一样。在 php文件中就不必要再register_block了,很方便。


转自: http://www.ihacklog.com/php/smarty/smarty-partly-cach.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卷边书_王诣

您的鼓励,是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值