位置: 编程技术 - 正文

Smarty模板引擎缓存机制详解(the模板引擎)

编辑:rootadmin

推荐整理分享Smarty模板引擎缓存机制详解(the模板引擎),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:smarty模板引擎原理,模板引擎js,smarty模版,模板引擎arttemplate,模板引擎template,模板引擎arttemplate,模板引擎template,smarty模板引擎原理,内容如对您有帮助,希望把文章链接给更多的朋友!

本文实例讲述了Smarty模板引擎缓存机制。分享给大家供大家参考,具体如下:

首先说下smarty缓存和编译,这是两个不同的概念,编译默认情况下是启动的,而缓存机制需要人为开启,smarty编译过的文件还是php文件,所以执行的时候还是编译的,如果涉及到数据库,还是要访问数据库的所以开销也不小啦,所以需要smarty缓存来解决!

1.开启全局缓存

2.一个页面使用多个缓存

如:一个文章模板页面会生成多个文章页面,当然是缓存成很多页面,实现起来很简单,只要在display()方法设置第二个参数,指定唯一标识符即可。如下php代码:

如上,通过第二个参数文章的id缓存一个文章页面。

3.为缓存减小开销

也就是说,已经缓存的页面无需进行数据库的操作处理了,可通过is_cached()方法判断!

4.清除缓存

一般在开发过程中是不开启缓存的,因为在缓存时间内输出结果不变,但是在应用过程中开启缓存能大大提高web性能,清除缓存方法如下:

5.关闭局部缓存

如果一个页面中一部分缓存,而另一部分不需要缓存,就可以这样做,比如说显示用户登录的名称就需要关闭缓存,smarty提供了如下三种解决方法:

(1)使用insert模板的一部分不被缓存

定义一个inser标签要使用的处理函数,函数名格式为:insert_xx(array $params, object &$smarty)其中的xx是insert的name,也就是说,如果你定义的函数为insert_abc,则模板中使用方法为{insert name=abc}

参数通过$params传入

也可以做成insert插件,文件名命名为:insert.xx.php,函数命名为:smarty_insert_aa($params,&$smarty),xx定义同上

(2)$smarty->register_block($params, &$smarty)使整篇页面中的某一块不被缓存

定义一个block:

注册block:

Smarty模板引擎缓存机制详解(the模板引擎)

模板写法:

写成block插件:

第一步:定义一件插件函数:block.cacheless.php,放在smarty的 plugins目录

block.cacheless.php的内容如下:

第二步:编写程序及模板

示例程序:testCacheLess.php

所用的模板:cache.tpl

现在运行一下,发现是不起作用的,两行内容都被缓存了

第三步:改写Smarty_Compiler.class.php(注:该文件很重要,请先备份,以在必要时恢复)

查找:

修改成:

你也可以直接将原句的最后一个参数改成false,即关闭默认缓存。

(3)使用register_function阻止插件从缓存中输出

index.tpl:

注解:

定义一个函数,函数名格式为:smarty_type_name($params, &$smarty)type为function

name为用户自定义标签名称,在这里是{current_time}

两个参数是必须的,即使在函数中没有使用也要写上。两个参数的功能同上。

更多关于Smarty相关内容感兴趣的读者可查看本站专题:《smarty模板入门基础教程》、《PHP模板技术总结》、《PHP基于pdo操作数据库技巧总结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于smarty模板的PHP程序设计有所帮助。

Smarty模板简单配置与使用方法示例 本文实例讲述了Smarty模板简单配置与使用方法。分享给大家供大家参考,具体如下:在Smarty目录中建立templates,templates_c,configs,cache目录。以便Smarty进行编

PHP书写格式详解(必看) 从一个例子开始。启动编辑器,创建一个php文件并键入如下代码:phpecho"你好!";将该文件命名为test.php并存储于E:html目录下。在浏览器地址栏里访问该ph

深入理解php printf() 输出格式化的字符串 phpprintf()函数用于输出格式化的字符串,本文章向码农介绍phpprintf()函数的使用方法和基本使用实例,感兴趣的码农可以参考一下。定义和用法printf()函

标签: the模板引擎

本文链接地址:https://www.jiuchutong.com/biancheng/294814.html 转载请保留说明!

上一篇:Yii2分页的使用及其扩展方法详解(分页limit)

下一篇:Smarty模板简单配置与使用方法示例(smarty怎么用)

  • 小规模季度不超30万需要交什么税
  • 公司税后利润怎么算
  • 银行共管账户现在可以开设吗
  • 金融服务担保费会计处理
  • 所得税可以预交吗现在
  • 租赁设备出口怎么处理?
  • 计提持有至到期投资减值准备
  • 在途物资可以结转成本吗
  • 公司为员工每月几号缴社保
  • 软件维护费可以出维护人员工资吗?
  • 行政单位基建账统一核算
  • 境外服务收入免税范围
  • 小规模外贸公司
  • 电子发票能不能作废重开
  • 农产品税率2020
  • 处于汇总期
  • 并购重组中需要哪些条件
  • 酒店更换地毯的请示
  • 企业不合规发票责令补开处理
  • ah股溢价是什么意思 搬砖
  • 税费是哪个会计科目?
  • 存货入库后的仓储费记录
  • 个体户酒店服务业个税税率
  • windows11启动卡在转圈圈
  • 净资产利润比率计算公式
  • 营业外支出的核算内容包括
  • 会计监督的基本规定有哪些
  • 个人银行卡作为公司备用金影响
  • 备孕男的要吃叶酸吗? 已解决
  • 支付宝消费计入什么科目
  • 根据完工进度确认成本
  • Get请求报错404出现原因及解决办法
  • 长期借款利息费用的资本化账务处理
  • 复式记账法含义
  • 购货款先到支付后付款
  • 暴风雪的寒冷
  • 如何申请办理港澳通行证
  • 在windows中安装应用程序的途径
  • 什么叫股权溢价之谜?
  • 利用matlab作图
  • 申请退税怎么算
  • 【历史上的今天】3 月 23 日:网景创始人出生;FORMAC 语言的开发者诞生;PRMan 非商业版发布
  • 【超用心整理】Markdown常用语法介绍,看这一个就够了
  • php实现导出带样本的方法
  • html+css网页设计
  • 增值税发票货物名称要求
  • 承债式股权转让
  • 小微企业免税销售额和其他免税销售额的区别
  • 以前年度损益调整会计分录
  • 不是销售性质的工作
  • 事业单位哪些收入要上交国库
  • 住宿发票 抵扣
  • 个体工商户生产经营所得税优惠政策
  • 小规模纳税人购进商品会计分录
  • 装修费用不摊销怎么入账
  • 资本化利息支出在报表哪里
  • 银行利息增值税发票申请单怎么填
  • 凭证扣除 28号
  • 资产负债表基本公式
  • 房地产企业前期围墙费用
  • 进项税的发票
  • mysql解压版怎么使用
  • FreeBSD下zfs: failed with error 6错误如何解决?
  • macOS 10.12.2下PDF崩溃严重怎么回事 macOS 10.12.2下PDF崩溃的原因以及解决办法
  • ubuntu20.10
  • xp系统电脑文件损坏怎样修复
  • mac验证码无法显示怎么办
  • win7格式化怎么操作?
  • linux rpm包怎么安装
  • 不得不佩服自己的搞笑说说
  • unity shader cull off
  • javaScript NameSpace 简单说明介绍
  • shell 查找文件并赋值shell变量
  • unity3d官方教程
  • jquery点击事件写法
  • 朝阳区下面分几个区
  • 苏州税务系统
  • 怎么查个税交了多久
  • 安徽省地方税务局刘利庆
  • 徐州交社保有户口限制吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设