smarty之缓存笔记
smarty缓存技术
在smarty中,缓存分为:普通缓存,单模版都缓存,局部缓存。
缓存:
1:首选打开缓存配置项:$smarty->caching=true;
2:缓存生命周期的配置选项:$smarty->cache_lifetime=整秒数
3:$smarty->is_cached('index.html')判断index.html页面是否缓存,如果缓存,避免io操作
include('./libs/Smarty.class.php');
$smarty=new Smarty();
$conn=mysql_connect('127.0.0.1','root','');
mysql_query('use smarty_cache',$conn);
mysql_query('set nemes gbk',$conn); $smarty->caching=true;
//开启缓存
$id=$_GET['id']+0;
$sql='select * from user where id='.$id;
if(!$smarty->is_cached('index.html'))
{
$result=mysql_query($sql,$conn);
$row=mysql_fetch_assoc($result);
$smarty->assign('id',$row['id']);
$smarty->assign('name',$row['name']);
echo '走了数据库';
}
$smarty->display('index.html');
单模版,多缓存
1:缓存参数$smarty->display('index.html',$id);
2:$smarty->is_cached('index.html',$id)判断index.html页面是否缓存,通过id来判断,id可以通过拼凑,可以参考ecshop中的缓存。
原则:凡是能影响页面内容的变量,就要根据此变量cached_id
include('./libs/Smarty.class.php');
$smarty=new Smarty();
$conn=mysql_connect('127.0.0.1','root','');
mysql_query('use smarty_cache',$conn);
mysql_query('set nemes gbk',$conn); $smarty->caching=true;
//开启缓存
$id=$_GET['id']+0;
$sql='select * from user where id='.$id;
$cached_id=$id+'XX'
if(!$smarty->is_cached('index.html',$cached_id))
{
$result=mysql_query($sql,$conn);
$row=mysql_fetch_assoc($result);
$smarty->assign('id',$row['id']);
$smarty->assign('name',$row['name']);
echo '走了数据库';
}
$smarty->display('index.html',$cached_id);
3:局部缓存:
在模版中不需要缓存的地方,用{insert name='nocachedid'}来表示,那么该处最终的值就是,insert_nocachedid()函数的返回值
<body>
这是这是一个smarty缓存技术的页面页面<br/>
{insert name=getname}
编号:{$id} 姓名:{$name} </body>
include('./libs/Smarty.class.php');
$smarty=new Smarty();
$conn=mysql_connect('127.0.0.1','root','');
mysql_query('use smarty_cache',$conn);
mysql_query('set nemes gbk',$conn);
function insert_getname()
{ return $_SESSION['name']
}
$smarty->caching=true;
//开启缓存
$id=$_GET['id']+0;
$sql='select * from user where id='.$id;
if(!$smarty->is_cached('index.html',$id))
{
$result=mysql_query($sql,$conn);
$row=mysql_fetch_assoc($result);
$smarty->assign('id',$row['id']);
$smarty->assign('name',$row['name']);
echo '走了数据库';
}
$smarty->display('index.html',$id);
在ecshop中,用到了smarty模版技术,只能复习下smarty技术了
smarty之缓存笔记的更多相关文章
- smarty详细使用教程(韩顺平smarty模板技术笔记)
MVC是一种开发模式,强调数据的输入.处理.显示是强制分离的 Smarty使用教程1.如何配置我们的smarty解压后把libs文件夹放在网站第一级目录下,然后创建两个文件夹templates 存放模 ...
- Smarty Caching缓存 ¥ 我要打赏
Smarty Caching缓存 https://www.yiibai.com/smarty/smarty_caching.html https://www.w3cschool.cn/smarty/s ...
- smarty之缓存机制
当smarty开启缓存时,当tpl文件内容改变时,则缓存页面会重新生成 test.php: <?php date_default_timezone_set('asia/shanghai'); h ...
- smarty实现缓存
首先需要在mySmarty中添加配置信息,开启缓存,设置缓存文件存放目录,设置缓存时间缓存可以实现减少访问数据库,减轻数据库压力,访问一次数据库,形成静态页面,下次直接调用这个页面,也可以用nocac ...
- golang实现分布式缓存笔记(一)基于http的缓存服务
目录 前言 cache 缓存服务接口 cache包实现 golang http包使用介绍 hello.go Redirect.go http-cache-server 实现 cacheHandler ...
- smarty学习——缓存
存被用来保存一个文档的输出从而加速display()或fetch()函数的执行.如果一个函数被加进缓存,那么实际输出的内容将用缓存来代替. 缓存可让事物非常快速的执行,特别是带有长计算时间的模板.一旦 ...
- smarty静态缓存
缓存能让程序访问起来更加快速,调数据库的数量变少,不能实时的跟数据库同步, 一般缓存文件都放在smarty文件下cach文件夹中: 建立缓存的PHP和HTML文件: 先编辑PHP文件来查询显示数据库当 ...
- 12月18日Smarty文件缓存
缓存 做缓存的目的是为了让程序运行起来更加迅速.因为如果程序访问数据库时数据量较大,执行起来会比较慢.而且每一次刷新页面都会访问依稀数据库,然后再把数据显示在页面上. 设置缓存也有一个缺点,那就是缓存 ...
- smarty 内存缓存
<?php //缓存 //定义一个该页面的缓存文件路径 $filename="../cache/mainhc.html"; //设置一个缓存时间 $time=; //判断缓存 ...
随机推荐
- python 和 c# 连接数据库 (Access)
模块pypyodbc 1.3.3下载: https://pypi.python.org/pypi/pypyodbc/ 安装:解压文件找到pypyodbc.py复制到python安装目录Lib文件夹 ...
- Retrofit的使用
参照文档:http://gank.io/post/56e80c2c677659311bed9841 一.创建Retrofit mRetrofit = new Retrofit.Builder() .b ...
- 自定义View 一 (继承VIew重写onDraw方法)
项目:具有圆形效果的自定义View 一.继承View并重写onDraw方法 public class CircleView extends View{ private static final int ...
- GNU所有软件下载,其中最有意思的是octave
http://ftp.gnu.org/gnu/ 最有意思的是octave:https://www.gnu.org/software/octave/http://ftp.gnu.org/gnu/octa ...
- linux下修改ip地址,默认网关以及DNS
*修改IP地址 即时生效: ifconfig eth0 192.168.1.100 netmask 255.255.255.0 重启生效: vim /etc/sysconfig/network-s ...
- HDOJ-1003 Max Sum(最大连续子段 动态规划)
http://acm.hdu.edu.cn/showproblem.php?pid=1003 给出一个包含n个数字的序列{a1,a2,..,ai,..,an},-1000<=ai<=100 ...
- linux动态库加载的秘密
摘自http://gotowqj.iteye.com/blog/1926734 摘自http://www.360doc.com/content/14/0313/13/12747488_36024641 ...
- 有关ios中images.xcassets的导入图片等命名问题
最近遇到一个问题,就是在设置启动图片的时候,把启动图片命名设置为了xxx@2x.png, 然后应用死活没有显示启动图片,调试了很久,才发现是因为文件命名的原因. 1. 如果在图片的下方有2x或3x的标 ...
- pomelo初探
最近发现了一个比较好玩的东西pomelo.地址:点击打开链接 这个东西是网易开发的一套基于node.js的高性能,分布式游戏服务器框架.这套框架不仅可以用来开发游戏服务器,也可用于开发高实时web应用 ...
- Linux基本配置和管理 4 ---- Linux系统启动详解
1 系统启动的流程 BIOS -> MBR+boot code -> 执行引导程序: GRUB -> 加载内核 -> 执行init -> 运行runlevel 2 启动详 ...