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}&nbsp;姓名:{$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之缓存笔记的更多相关文章

  1. smarty详细使用教程(韩顺平smarty模板技术笔记)

    MVC是一种开发模式,强调数据的输入.处理.显示是强制分离的 Smarty使用教程1.如何配置我们的smarty解压后把libs文件夹放在网站第一级目录下,然后创建两个文件夹templates 存放模 ...

  2. Smarty Caching缓存 ¥ 我要打赏

    Smarty Caching缓存 https://www.yiibai.com/smarty/smarty_caching.html https://www.w3cschool.cn/smarty/s ...

  3. smarty之缓存机制

    当smarty开启缓存时,当tpl文件内容改变时,则缓存页面会重新生成 test.php: <?php date_default_timezone_set('asia/shanghai'); h ...

  4. smarty实现缓存

    首先需要在mySmarty中添加配置信息,开启缓存,设置缓存文件存放目录,设置缓存时间缓存可以实现减少访问数据库,减轻数据库压力,访问一次数据库,形成静态页面,下次直接调用这个页面,也可以用nocac ...

  5. golang实现分布式缓存笔记(一)基于http的缓存服务

    目录 前言 cache 缓存服务接口 cache包实现 golang http包使用介绍 hello.go Redirect.go http-cache-server 实现 cacheHandler ...

  6. smarty学习——缓存

    存被用来保存一个文档的输出从而加速display()或fetch()函数的执行.如果一个函数被加进缓存,那么实际输出的内容将用缓存来代替. 缓存可让事物非常快速的执行,特别是带有长计算时间的模板.一旦 ...

  7. smarty静态缓存

    缓存能让程序访问起来更加快速,调数据库的数量变少,不能实时的跟数据库同步, 一般缓存文件都放在smarty文件下cach文件夹中: 建立缓存的PHP和HTML文件: 先编辑PHP文件来查询显示数据库当 ...

  8. 12月18日Smarty文件缓存

    缓存 做缓存的目的是为了让程序运行起来更加迅速.因为如果程序访问数据库时数据量较大,执行起来会比较慢.而且每一次刷新页面都会访问依稀数据库,然后再把数据显示在页面上. 设置缓存也有一个缺点,那就是缓存 ...

  9. smarty 内存缓存

    <?php //缓存 //定义一个该页面的缓存文件路径 $filename="../cache/mainhc.html"; //设置一个缓存时间 $time=; //判断缓存 ...

随机推荐

  1. python 和 c# 连接数据库 (Access)

    模块pypyodbc 1.3.3下载:   https://pypi.python.org/pypi/pypyodbc/ 安装:解压文件找到pypyodbc.py复制到python安装目录Lib文件夹 ...

  2. Retrofit的使用

    参照文档:http://gank.io/post/56e80c2c677659311bed9841 一.创建Retrofit mRetrofit = new Retrofit.Builder() .b ...

  3. 自定义View 一 (继承VIew重写onDraw方法)

    项目:具有圆形效果的自定义View 一.继承View并重写onDraw方法 public class CircleView extends View{ private static final int ...

  4. GNU所有软件下载,其中最有意思的是octave

    http://ftp.gnu.org/gnu/ 最有意思的是octave:https://www.gnu.org/software/octave/http://ftp.gnu.org/gnu/octa ...

  5. linux下修改ip地址,默认网关以及DNS

    *修改IP地址 即时生效: ifconfig eth0 192.168.1.100  netmask 255.255.255.0 重启生效: vim  /etc/sysconfig/network-s ...

  6. HDOJ-1003 Max Sum(最大连续子段 动态规划)

    http://acm.hdu.edu.cn/showproblem.php?pid=1003 给出一个包含n个数字的序列{a1,a2,..,ai,..,an},-1000<=ai<=100 ...

  7. linux动态库加载的秘密

    摘自http://gotowqj.iteye.com/blog/1926734 摘自http://www.360doc.com/content/14/0313/13/12747488_36024641 ...

  8. 有关ios中images.xcassets的导入图片等命名问题

    最近遇到一个问题,就是在设置启动图片的时候,把启动图片命名设置为了xxx@2x.png, 然后应用死活没有显示启动图片,调试了很久,才发现是因为文件命名的原因. 1. 如果在图片的下方有2x或3x的标 ...

  9. pomelo初探

    最近发现了一个比较好玩的东西pomelo.地址:点击打开链接 这个东西是网易开发的一套基于node.js的高性能,分布式游戏服务器框架.这套框架不仅可以用来开发游戏服务器,也可用于开发高实时web应用 ...

  10. Linux基本配置和管理 4 ---- Linux系统启动详解

    1 系统启动的流程 BIOS -> MBR+boot code -> 执行引导程序: GRUB -> 加载内核 -> 执行init -> 运行runlevel 2 启动详 ...