smarty局部缓存技术[源码分析]_PHP教程
之前一直使用其它的模板引擎,今天在听bkJia培训课程的时候,讲到了smarty模板引擎的局部缓存,感觉挺好的,在此结合自身的理解,感慨一翻,要是有什么不对的地方,希望朋友跟贴回复。 大家一起共勉学习。 同时也感谢张老师,为像我们这样的PHP初学者提供一个非常优秀的学习平台。
发现smarty是如此强大与神奇的一个东东,使我对它的好感不亚于对以前使用的模板引擎.
由于我默认是开启smarty的缓存的,但是在些地方的数据是实时更新或者更新较快的,不宜缓存,这样,局部缓存便有用武之地了。
1,insert 法
定义一个函数显示时间的:
<ol class="dp-c"> <li class="alt"><span><span class="keyword">function</span><span> insert_get_current_time(){ </span></span></li> <li> <span> </span><span class="vars">$timestamp</span><span>=</span><span class="func">empty</span><span class="keyword">empty</span><span>(</span><span class="vars">$timestamp</span><span>)?time():</span><span class="vars">$timestamp</span><span>; </span> </li> <li class="alt"> <span> </span><span class="vars">$timeoffset</span><span>=(int) </span><span class="string">+8</span><span>; </span> </li> <li> <span> </span><span class="keyword">return</span><span> </span><span class="vars">$ret</span><span>=</span><span class="func">gmdate</span><span>(</span><span class="string">"Y-n-j g:ia"</span><span>, </span><span class="vars">$timestamp</span><span> + </span><span class="vars">$timeoffset</span><span> * 3600); </span> </li> <li class="alt"><span>} </span></li> </ol>
然后在模板中:
<ol class="dp-c"><li class="alt"><span><span>{insert name=</span><span class="string">"get_current_time"</span><span>} </span></span></li></ol>
这样每次打开页面,显示的都是即时时间,而不是缓存的。注意这里的函数名一定要以insert开头,模板中的name与之对应。
这种方法简单,但是如果要显示的内容是一大块的,就不宜使用了。
2,动态block 法
<ol class="dp-c"> <li class="alt"><span><span class="comment">//部分缓存 </span><span> </span></span></li> <li> <span class="keyword">function</span><span> smarty_block_nocache(</span><span class="vars">$param</span><span>, </span><span class="vars">$content</span><span>, </span><span class="vars">$smarty</span><span>) </span> </li> <li class="alt"><span> { </span></li> <li> <span> </span><span class="keyword">return</span><span> </span><span class="vars">$content</span><span>; </span> </li> <li class="alt"><span>} </span></li> <li> <span class="vars">$smarty</span><span>->register_block(</span><span class="string">nocache</span><span>, </span><span class="string">smarty_block_nocache</span><span>, false); </span> </li> </ol>
在模板中:
<ol class="dp-c"> <li class="alt"><span><span>{nocache} </span></span></li> <li> <span>{</span><span class="vars">$smarty</span><span>.now} </span> </li> <li class="alt"><span>{/nocache} </span></li> </ol>
这样每次刷新页面,显示的时间都是不同的。
3,插件block 法
在Smarty/plugins目录下建一个文件
block.nocache.php 内容如下:
<ol class="dp-c"> <li class="alt"><span><span><?php </span></span></span></li> <li> <span class="keyword">function</span><span> smarty_block_nocache(</span><span class="vars">$param</span><span>, </span><span class="vars">$content</span><span>, </span><span class="vars">$smarty</span><span>) </span> </li> <li class="alt"><span>{ </span></li> <li> <span> </span><span class="keyword">return</span><span> </span><span class="vars">$content</span><span>; </span> </li> <li class="alt"><span>} </span></li> <li><span>?> </span></li> </ol>
这样做与方法2的效果是一样的,模板中标签也一样。在 php文件中就不必要再register_block了,很方便。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

在如今云存储已经成为我们日常生活和工作中不可或缺的一部分。百度网盘作为国内领先的云存储服务之一,凭借其强大的存储功能、高效的传输速度以及便捷的操作体验,赢得了广大用户的青睐。而且无论你是想要备份重要文件、分享资料,还是在线观看视频、听取音乐,百度网盘都能满足你的需求。但是很多用户们可能对百度网盘app的具体使用方法还不了解,那么这篇教程就将为大家详细介绍百度网盘app如何使用,还有疑惑的用户们就快来跟着本文详细了解一下吧!百度云网盘怎么用:一、安装首先,下载并安装百度云软件时,请选择自定义安装选

网易邮箱,作为中国网民广泛使用的一种电子邮箱,一直以来以其稳定、高效的服务赢得了用户的信赖。而网易邮箱大师,则是专为手机用户打造的邮箱软件,它极大地简化了邮件的收发流程,让我们的邮件处理变得更加便捷。那么网易邮箱大师该如何使用,具体又有哪些功能呢,下文中本站小编将为大家带来详细的内容介绍,希望能帮助到大家!首先,您可以在手机应用商店搜索并下载网易邮箱大师应用。在应用宝或百度手机助手中搜索“网易邮箱大师”,然后按照提示进行安装即可。下载安装完成后,我们打开网易邮箱账号并进行登录,登录界面如下图所示

MetaMask(中文也叫小狐狸钱包)是一款免费的、广受好评的加密钱包软件。目前,BTCC已支持绑定MetaMask钱包,绑定后可使用MetaMask钱包进行快速登入,储值、买币等,且首次绑定还可获得20USDT体验金。在BTCCMetaMask钱包教学中,我们将详细介绍如何注册和使用MetaMask,以及如何在BTCC绑定并使用小狐狸钱包。MetaMask钱包是什么?MetaMask小狐狸钱包拥有超过3,000万用户,是当今最受欢迎的加密货币钱包之一。它可免费使用,可作为扩充功能安装在网络

小米汽车软件提供远程车控功能,让用户可以通过手机或电脑远程控制车辆,例如开关车辆的门窗、启动引擎、控制车辆的空调和音响等,下文就是这个软件的使用及内容,一起了解下吧。小米汽车app功能及使用方法大全1、小米汽车app在3月25日上线苹果AppStore,现在安卓手机的应用商店中也可以下载了;购车:了解小米汽车核心亮点和技术参数,可预约试驾、配置订购您的小米汽车,支持在线处理提车待办事项。3、社区:了解小米汽车品牌资讯,交流用车体验,分享精彩车生活;4、车控:手机就是遥控器,远程控制,实时安防,轻

在PHP开发中,缓存机制通过将经常访问的数据临时存储在内存或磁盘中来提升性能,从而减少数据库访问次数。缓存类型主要包括内存、文件和数据库缓存。PHP中可以使用内置函数或第三方库实现缓存,如cache_get()和Memcache。常见的实战应用包括缓存数据库查询结果以优化查询性能,以及缓存页面输出以加快渲染速度。缓存机制有效改善网站响应速度,提升用户体验并降低服务器负载。

23年9月国防科大、京东和北理工的论文“DeepModelFusion:ASurvey”。深度模型融合/合并是一种新兴技术,它将多个深度学习模型的参数或预测合并为一个模型。它结合了不同模型的能力来弥补单个模型的偏差和错误,以获得更好的性能。而大规模深度学习模型(例如LLM和基础模型)上的深度模型融合面临着一些挑战,包括高计算成本、高维参数空间、不同异构模型之间的干扰等。本文将现有的深度模型融合方法分为四类:(1)“模式连接”,通过一条损失减少的路径将权重空间中的解连接起来,以获得更好的模型融合初

C++模板特化影响函数重载和重写:函数重载:特化版本可提供特定类型不同的实现,从而影响编译器选择调用的函数。函数重写:派生类中的特化版本将覆盖基类中的模板函数,影响派生类对象调用函数时的行为。

写在前面&笔者的个人理解基于图像的3D重建是一项具有挑战性的任务,涉及从一组输入图像推断目标或场景的3D形状。基于学习的方法因其直接估计3D形状的能力而受到关注。这篇综述论文的重点是最先进的3D重建技术,包括生成新颖的、看不见的视图。概述了高斯飞溅方法的最新发展,包括输入类型、模型结构、输出表示和训练策略。还讨论了尚未解决的挑战和未来的方向。鉴于该领域的快速进展以及增强3D重建方法的众多机会,对算法进行全面检查似乎至关重要。因此,本研究对高斯散射的最新进展进行了全面的概述。(大拇指往上滑
