很多时候我们在用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就可以了!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php局部缓存,Smarty局部缓存的几种方法简介_php实例相关推荐

  1. MySQL关闭查询缓存(QC)的两种方法

    MySQL Query Cache 会缓存select 查询,安装时默认是开启的,但是如果对表进行INSERT, UPDATE, DELETE, TRUNCATE, ALTER TABLE, DROP ...

  2. SLAM 建立局部二维栅格地图的一种方法

    转载请说明出处:http://blog.csdn.net/zhubaohua_bupt/article/details/72923373 二维占据栅格地图(栅格地图)广泛应用于移动机器人导航领域中,比 ...

  3. 明白了缓存穿透和缓存雪崩,再了解一下缓存击穿!

    作者 l 会点代码的大叔(CodeDaShu) 在往期文章中,我们介绍了缓存穿透和缓存雪崩,其中缓存雪崩,是对于一些设置了过期时间的 key,在某个时间点集体失效后,有大量的请求落到数据库上导致被击垮 ...

  4. 缓存、缓存算法和缓存框架简介

    英文原文:jtraining,译文:Lixiang 引言 我们都听过 cache,当你问他们是什么是缓存的时候,他们会给你一个完美的答案,可是他们不知道缓存是怎么构建的,或者没有告诉你应该采用什么标准 ...

  5. django中的缓存 单页面缓存,局部缓存,全站缓存 跨域问题的解决

    django中的缓存 单页面缓存,局部缓存,全站缓存 跨域问题的解决 参考文章: (1)django中的缓存 单页面缓存,局部缓存,全站缓存 跨域问题的解决 (2)https://www.cnblog ...

  6. java如何做全局缓存_传智播客JNI第七讲 – JNI中的全局引用/局部引用/弱全局引用、缓存jfieldID和jmethodID的两种方式...

    讲解JNI中的全局引用/局部引用/弱全局引用.缓存jfieldID和jmethodID的两种方式,并编写两种缓存方式的示例代码. 1.从Java虚拟机创建的对象传到本地C/C++代码时会产生引用,根据 ...

  7. php smarty关闭缓存,php+Smarty的缓存操作

    一.使用缓存 要开启smarty的缓存,只需将caching设为true,并指定cache_dir即可. 使用cache_lefetime指定缓存生存时间,单位为秒 要对相同页面生成多个不同的缓存,在 ...

  8. java 全局缓存_java本地缓存

    1.为什么要使用缓存 由于服务器.数据库.网络等资源有限,无法支撑越来越多的请求与计算量,所以将一部分数据放在缓存中,以此减小薄弱环节的计算量和请求流程. 网站中缓存的应用场景:1:可以缓存整个页面的 ...

  9. .net html5页面缓存技术,.net缓存技术详解

    动态缓存(1)-传统缓存 与 页面输出缓存 面详细介绍在<系统缓存全解析一>中提及的动态缓存技术: 一,传统缓存方式: 比如将可重复利用的东西放到Application或是Session中 ...

  10. 一级缓存和二级缓存的理解

    首先补充下CPU的知识: CPU也就是中央处理器,相当于计算机的大脑: CPU是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit): CPU功能主要是解 ...

最新文章

  1. Deep Learning基础理论--Classification RBM
  2. 接口隔离原则_设计模式六大原则
  3. mysql待办事项表名_SSD8-Ex4待办事项列表答案参考
  4. 全国职称计算机吧,全国职称计算机考试Excel2003大纲
  5. Mysql允许root用户远程访问
  6. 项目心得--我的尺寸测量项目
  7. 在自动驾驶技术上,一向自信满满的马斯克也承认了特斯拉的不足
  8. Java毕业设计-社区疫情防控管理系统
  9. 中国行政区边界shp下载(省,市,县)
  10. 机器学习-预测之BP神经网络模型原理及实战
  11. php mysql是bs还是cs_bs和cs架构的区别是什么
  12. Intellij IDEA创建Scala项目
  13. 木兰词·拟古决绝词柬友
  14. 两条纵坐标折线图绘制
  15. 【学习笔记】原根 + 欧拉定理 + 威尔逊定理
  16. 我在阿里三年的运营经都在这儿了
  17. Python丨Django实现微电影网站
  18. python朴素贝叶斯的文本分类_自给自足,完全手写一个朴素贝叶斯分类器,完成文本分类...
  19. 专注云原生落地,星汉未来成为开源 GitOps 产业联盟会员
  20. gmtsar哨兵一号卫星两景数据拼接

热门文章

  1. 解决wordpress用户注册时,点击邮件中的重置密码链接提示“您的密码重设链接无效”
  2. linux目录分配独立磁盘空间,Linux 分配/home的磁盘空间给根目录
  3. STM32——库函数版——数码管动态显示程序
  4. python rsi_使用python与rsi进行算法交易
  5. java图片的缩放_Java的图片自动缩放
  6. 自动驾驶 2-4 环境表示 Environment Representation
  7. Google Code Review 如何编写代码评论
  8. java lambda有必要_深度分析:java8的新特性lambda和stream流,看完你学会了吗?
  9. Kaggle酒推荐,winemag-data-130k-v2.csv
  10. 470.用Rand7()实现Rand10()