目录
smarty缓存用法分析,smarty缓存用法
首页 php教程 php手册 smarty缓存用法分析,smarty缓存用法

smarty缓存用法分析,smarty缓存用法

Jun 13, 2016 am 09:18 AM
smarty 用法 缓存

smarty缓存用法分析,smarty缓存用法

本文详细分析了smarty缓存的用法。分享给大家供大家参考。具体分析如下:

一开始以为smarty只是用来做一些掩饰php代码功能,但是后来才知道还有模板缓存这个强大的功能。

什么是模板缓存呢,就是我们在从数据库里面取出一些数据输出到模板的访问的时候,每一次都对数据库进行访问,但是其实每一次的数据库访问都是相同的,假如网址的流量很大,这种重复的访问完全是没有必要的,对于数据库有很大压力。smarty就提供了缓存技术,用于解决这个问题。

首先使用smarty的缓存,我们有一些要设置的:

开启缓存

复制代码 代码如下:

$Smarty->caching = true;

设置缓存周期

复制代码 代码如下:

$Smarty->cache_lifetime = 30;

设置缓存目测

复制代码 代码如下:

$Smarty->cache_dir = './cache';

然后对于数据库访问的那一部分,我们首先做一次判断,是否已经对此部分进行过缓存了

复制代码 代码如下:

if(!$Smarty->isCached('01.html')){//判断是否已经进行过缓存,如果已经进行过就不走这里,直接输出模板 
    $conn = mysql_connect('localhost','root','root'); 
    mysql_query('set names utf8'); 
    mysql_query('use market'); 
    $rs = mysql_query('select goods_id,goods_name,shop_price,add_time from goods where goods_id = ' . $goods_id,$conn); 
    $goods =array(); 
    while($row = mysql_fetch_assoc($rs)){ 
        $goods[] = $row; 
    } 
    echo '走了数据库'; 
    $Smarty->assign('goods); 
}


但是在smarty的缓存里面还有需要注意的地方,就是假如从地址栏里面get的参数,那么就有可能影响到缓存,多个不同的参数只缓存了第一次生成的,所以这里就需要用到单模板多缓存技术,其实也很简单,只要在

复制代码 代码如下:

$Smarty->assign('goods',$goods);

这里添加了一个参数,这个参数就是从地址栏获取的,当然,在判断的时候也需要把参数添加进去判断是否已经缓存了

复制代码 代码如下:

$Smarty->isCached('01.html',goods_id);

那么这个缓存要怎么删除呢,很简单,只需要调用

复制代码 代码如下:

$Smarty->clearCache('01.html',$goods_id)

第二个参数可选,假如不填就直接删除这个模板下面的所有缓存。
最后,有时候在调试程序的时候不缓存,我们也可以设置这个参数用于暂时停止缓存:

复制代码 代码如下:

$Smarty->force_cache = true;

最后有一点注意,缓存的生命周期是指,在这个时间过了以后,再次刷新这个页面会用新的缓存代替旧的,假如不产生新的缓存,那么旧的缓存是不会自动删除的,所以在实际项目开发中,假如缓存很多的话,其实也是很影响存储的。

其实我们需要缓存的也只是很少一部分的HTML,现在很多站都使用了memcached来缓存。

希望本文所述对大家的PHP程序设计有所帮助。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

视频文件存储在浏览器缓存中的位置在哪里? 视频文件存储在浏览器缓存中的位置在哪里? Feb 19, 2024 pm 05:09 PM

浏览器缓存视频在哪个文件夹在日常使用互联网浏览器时,我们经常会观看各种在线视频,比如在YouTube上看音乐视频或在Netflix上观看电影等。而这些视频在加载过程中会被浏览器缓存下来,以便日后再次播放时能够快速加载。那么问题来了,这些缓存的视频实际上存储在哪个文件夹中呢?不同浏览器的缓存视频文件夹保存位置是不同的。下面我们将分别介绍几种常见的浏览器以及它们

Linux如何查看和刷新dns缓存 Linux如何查看和刷新dns缓存 Mar 07, 2024 am 08:43 AM

DNS(DomainNameSystem)是互联网中用于将域名转换为对应IP地址的系统。在Linux系统中,DNS缓存是一种将域名和IP地址的映射关系存储在本地的机制,可提高域名解析速度,减轻DNS服务器的负担。DNS缓存允许系统在之后访问相同域名时快速检索IP地址,而不必每次都向DNS服务器发出查询请求,从而提高网络性能和效率。本文不念将和大家一起探讨如何在Linux上查看和刷新DNS缓存,以及相关的详细内容和示例代码。DNS缓存的重要性在Linux系统中,DNS缓存扮演着关键的角色。它的存在

WPSdatedif函数的用法 WPSdatedif函数的用法 Feb 20, 2024 pm 10:27 PM

WPS是一款常用的办公软件套件,其中的WPS表格功能被广泛使用于数据处理和计算。在WPS表格中,有一个非常有用的函数,即DATEDIF函数,它用于计算两个日期之间的时间差。DATEDIF函数是英文单词DateDifference的缩写,它的语法如下:DATEDIF(start_date,end_date,unit)其中,start_date表示起始日期

会对 HTML 文件进行缓存吗 会对 HTML 文件进行缓存吗 Feb 19, 2024 pm 01:51 PM

标题:HTML文件的缓存机制及代码示例导语:在编写网页时,我们经常会遇到浏览器缓存的问题。本文将详细介绍HTML文件的缓存机制,并提供一些具体的代码示例,以帮助读者更好理解和应用这一机制。一、浏览器缓存原理在浏览器中,每当访问一个网页时,浏览器会先检查缓存中是否有该网页的副本。如果有,则直接从缓存获取网页内容,这就是浏览器缓存的基本原理。浏览器缓存机制的好处

PHP APCu 的高级用法:解锁隐藏的力量 PHP APCu 的高级用法:解锁隐藏的力量 Mar 01, 2024 pm 09:10 PM

PHPAPCu(替代php缓存)是一个加速PHP应用程序的opcode缓存和数据缓存模块。理解其高级功能对于充分利用其潜力至关重要。1.批量操作:APCu提供批量操作方法,可同时处理大量键值对。这对于大规模缓存清除或更新非常有用。//批量获取缓存键$values=apcu_fetch(["key1","key2","key3"]);//批量清除缓存键apcu_delete(["key1","key2","key3"]);2.设置缓存过期时间:APCu允许您为缓存项设置过期时间,以便在指定时间后自

APCu 最佳实践:提高您的应用程序的效率 APCu 最佳实践:提高您的应用程序的效率 Mar 01, 2024 pm 10:58 PM

优化缓存大小和清理策略为APCu分配适当的缓存大小至关重要。过小的缓存无法有效缓存数据,而过大的缓存则会浪费内存。一般来说,将缓存大小设置为可用内存的1/4到1/2是一个合理的范围。此外,制定一个有效的清理策略可以确保缓存中不保存过时的或无效的数据。您可以使用APCu的自动清理功能或实现自定义清理机制。示例代码://设置缓存大小为256MBapcu_add("cache_size",268435456);//每60分钟清理一次缓存apcu_add("cache_ttl",60*60);启用压缩通

如何将浏览器缓存中的视频文件保存到本地 如何将浏览器缓存中的视频文件保存到本地 Feb 23, 2024 pm 06:45 PM

浏览器缓存的视频怎么导出来随着互联网的快速发展,视频已经成为人们日常生活中不可或缺的一部分。而在浏览网页时,我们常常会遇到想要保存或分享的视频内容,但是有时候我们却无法找到视频文件的来源,因为它们可能只存在于浏览器的缓存中。那么,如何导出浏览器缓存中的视频呢?本文将为您介绍几种常用的方法。首先,我们需要明确一个概念,即浏览器缓存。浏览器缓存是浏览器为了提高用

MySQL ISNULL 函数详解及用法介绍 MySQL ISNULL 函数详解及用法介绍 Mar 01, 2024 pm 05:24 PM

MySQL中的ISNULL()函数是用于判断指定表达式或列是否为NULL的函数。它返回一个布尔值,如果表达式为NULL则返回1,否则返回0。ISNULL()函数可以在SELECT语句中使用,也可以在WHERE子句中进行条件判断。1.ISNULL()函数的基本语法:ISNULL(expression)其中,expression是要判断是否为NULL的表达式或

See all articles