热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

smarty模板使用教程(五)-程序员篇(二)缓存技术

表示要查看id为10的这条新闻,但是,news.php文件加载的是news.htpl模板,这个模板之前已经有了缓存文件,所以这次查看到的是id为9的新闻的缓存信息
六  使用缓存
当我们的程序第一次运行时,如果我们开启缓存功能,这样会生成一个缓存文件,当程序第二次被访问时,直接将该缓存文件输出给用户来用
缓存是指对模板文件的缓存
Demo01.tpl------à2373874981asdf222187217.demo01.tpl.php
用户--àdemo01.tpl-------à2373874981asdf222187217.demo01.tpl.php
缓存没有静态页速度快
1、关于smarty缓存的运行流程
2、设置缓存
l $smarty->setCacheDir($cache_dir);//设置缓存文件目录
l $smarty->caching=true;//开启缓存功能
l $smarty->cach_lifetime=3600;//设置缓存时间
 
以下这题第一次运行完毕时,会在当前路径下产生一个叫cache的文件夹,在这个文件夹下,生成一个以demo06.htpl命名的缓存文件,下次用户如果还demo06.htpl这个模板,那么,smary会直接调用这个缓存文件
 
3、检查缓存
$smarty->isCached(“tpl.tpl”)
判断某个模板文件是否有缓存,如果有,返回true,反之,返回false
smarty模板的使用
smarty模板的使用
这个方法很有用!!!
举例:
比如我想查询某条新闻,当我看过之后,这时会产生了一个这条新闻的缓存文件,现在有另一个人想访问这条新闻,是不是应该这么做?
如果这条新闻有缓存,则使用缓存文件,如果没有缓存,去查询数据库
smarty模板的使用
 
4、清除缓存
l $smarty->clearCache(“tpl.tpl”)
清除指定模板的缓存文件
l $smarty->clearAllCache()
清除所有模板的缓存文件
删除缓存时不要开启缓存机制,不然一边删除一边生成。
smarty模板的使用
 
问题:什么是使用清除缓存功能:
一般情况下,当数据库中的数据发生改变时,需要清除之前的缓存,再重新生成新的缓存文件
 
5、局部缓存
在有些网页里,并不是所有数据都需要缓存的,如:在一个新闻页面中,新闻标题、新闻内容、发布时间等信息应该使用缓存技术,但是像评论次数、浏览次数、新闻总数这些信息是不应该缓存
smarty模板的使用
在smarty中,使用局部缓存的功能有以下三种方式:
l $smarty->assign(“var”, “value”, true)
Assign方法的第三个表示是否禁用缓存   默认:false
l {$var nocache=true}
在模板变量后加上 nocache=true,表示禁用缓存功能
l {nocache}{/nocache}
如果有大量的模板变量需要禁止缓存,可以考虑在模板中使用{nocache}函数
1)
smarty模板的使用
2)
 
smarty模板的使用
3)
 
smarty模板的使用
 
实例:
代码见:demo11.php   demo11.htpl
 
6、单页面多缓存问题
http://www.phpstar.cn/news.php?id=9 
表示要查看id为9的这条新闻,查看之后,对news.htpl模板产生了缓存文件
http://www.phpstar.cn/news.php?id=10
表示要查看id为10的这条新闻,但是,news.php文件加载的是news.htpl模板,这个模板之前已经有了缓存文件,所以这次查看到的是id为9的新闻的缓存信息 
l $smarty->caching=true;
l $smarty->display(“tpl”, “cacheid”);
给当前模板指定缓存id
smarty模板的使用
 
7、缓存集合
在有些页面中,往往会有组合查询
http://www.phpstar.cn/product.php?id=8&sid=10    810
http://www.phpstar.cn/product.php?id=8&sid=9
8^23872873873demo11.htpl.php     810
l $smarty->caching=true
l $smarty->display(“tpl”, $id1.”|”.$id2);
smarty模板的使用

推荐阅读
  • Hadoop发行版本选择指南:技术解析与应用实践
    本文详细介绍了Hadoop的不同发行版本及其特点,帮助读者根据实际需求选择最合适的Hadoop版本。内容涵盖Apache Hadoop、Cloudera CDH等主流版本的特性及应用场景。 ... [详细]
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • Android Studio 安装与配置指南
    本教程详细介绍了如何下载并安装 Android Studio,包括设置 SDK 路径和优化启动性能的方法。通过这些步骤,您可以顺利地开始开发 Android 应用。 ... [详细]
  • 本文详细介绍了福昕软件公司开发的Foxit PDF SDK ActiveX控件(版本5.20),并提供了关于其在64位Windows 7系统和Visual Studio 2013环境下的使用方法。该控件文件名为FoxitPDFSDKActiveX520_Std_x64.ocx,适用于集成PDF功能到应用程序中。 ... [详细]
  • Appium + Java 自动化测试中处理页面空白区域点击问题
    在进行移动应用自动化测试时,有时会遇到某些页面没有返回按钮,只能通过点击空白区域返回的情况。本文将探讨如何在Appium + Java环境中有效解决此类问题,并提供详细的解决方案。 ... [详细]
  • 如何清除Chrome浏览器地址栏的特定历史记录
    在使用Chrome浏览器时,你可能会发现地址栏保存了大量浏览记录。有时你可能希望删除某些特定的历史记录而不影响其他数据。本文将详细介绍如何单独删除地址栏中的特定记录以及批量清除所有历史记录的方法。 ... [详细]
  • JavaScript 中创建对象的多种方法
    本文详细介绍了 JavaScript 中创建对象的几种常见方式,包括对象字面量、构造函数和 Object.create 方法,并提供了示例代码和属性描述符的解释。 ... [详细]
  • 本文详细介绍了如何在PHP中实现基于概率的随机抽奖功能。通过实例代码,解释了抽奖逻辑、奖品设置及结果统计的方法。适合PHP开发者参考学习。 ... [详细]
  • 本文对宋代词人朱雍的《迷神引》进行翻译和赏析,深入探讨其词作的艺术特色与情感表达。 ... [详细]
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • 本文介绍如何使用PHP在WordPress中根据分类类别ID或名称获取所有相关文章,提供详细的方法和代码示例。 ... [详细]
  • 本题来自WC2014,题目编号为BZOJ3435、洛谷P3920和UOJ55。该问题描述了一棵不断生长的带权树及其节点上小精灵之间的友谊关系,要求实时计算每次新增节点后树上所有可能的朋友对数。 ... [详细]
  • 本文详细介绍了如何使用 PHP 接收并处理微信支付的回调结果,确保支付通知能够被正确接收和响应。 ... [详细]
  • 小编给大家分享一下如何移除URL中的index.php,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收 ... [详细]
author-avatar
会哭的鱼A
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有