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

在mysmarty类中添加的语句

		$this->cache_dir='./cache';//缓存文件存放目录

		//开启缓存
$this->caching=true;
//配置缓存的生命周期
$this->cache_lifetime=3600;//单位是秒

控制页面01.php

<?php
//演示缓冲
require('../../smarty3/libs/smarty.class.php'); require('./mySmarty.php'); //定义方法
function insert_welcome(){
return 123;
}
//创建对象
$smarty=new mySmarty(); //是否开启缓存 $arr=array();
if(!$smarty->isCached('01.html')){
$conn=mysql_connect('localhost','root','111111');
mysql_query('use boolshop',$conn);//选库
mysql_query('set names utf8',$conn);//设置编码
$sql='select goods_id,goods_name,goods_number,shop_price from goods limit 5';
$rs=mysql_query($sql,$conn); while(($row=mysql_fetch_assoc($rs))!==false){
$arr[]=$row;
}
echo '我走了数据库';
}
//$smarty->clearCache('01.html');//强制清除缓存
$smarty->assign('suiji',rand(),true);//如果第三个参数是true,则这个变量不缓存
$smarty->assign('goods',$arr);
$smarty->display('01.html'); ?>

显示页面01.html

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>显示数据</title>
<style type="text/css">
{literal}
p{
font-size:25px;
background:green;
} {/literal}
</style> </head>
<body>
<p>这里是一个随机数{rand()*100 nocache}添加nocache属性不缓存(局部的)<p>
<p>这是用assign传的值{$suiji}</p>
用foreach遍历数组<br/>
{foreach from=$goods key='key' item='v'}
<p>
id号:{$v['goods_id']},商品名字:{$v['goods_name']},商品价格{$v['shop_price']},商品储存量 {$v['goods_number']} </p>
{/foreach}
<p>{insert name='welcome' nocache}</p>
</body>
</html>

smarty实现缓存的更多相关文章

  1. Smarty Caching缓存 ¥ 我要打赏

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

  2. smarty之缓存机制

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

  3. smarty之缓存笔记

    smarty缓存技术 在smarty中,缓存分为:普通缓存,单模版都缓存,局部缓存. 缓存:1:首选打开缓存配置项:$smarty->caching=true; 2:缓存生命周期的配置选项:$s ...

  4. smarty学习——缓存

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

  5. smarty静态缓存

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

  6. 12月18日Smarty文件缓存

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

  7. smarty 内存缓存

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

  8. Smarty缓存技术总结

    大家应该都知道合理使用缓存能有效的减轻网站的服务器压力,php Smarty作为一个非常优秀的php模板引擎,它为我们提供了非常简单而多样化的缓存操作,下面就让我们学习一下smarty缓存操作方面的一 ...

  9. 全面剖析Smarty缓存机制一[三种缓存方式]

    今天主要全面总结下Smarty模板引擎中强大的缓存机制,缓存机制有效减少了系统对服务器的压力,而这也是很多开发者喜欢Smarty的原因之一,由于篇幅较大,便于博友阅读,这篇文章将剖析Smarty缓存的 ...

随机推荐

  1. [iOS基础控件 - 2] 按钮的基本使用

    UIButton A.素材准备 1.图片素材放置到Images.xcassets中     B.按钮状态 1.normal:默认状态 Default 对应的枚举常量:UIControlStateNor ...

  2. [Objective-c 基础 - 2.3] 继承、组合

    A.继承的实现: is a 1.不允许子类.父类存在相同的成员变量 2.方法调用优先原则:子类调用方法的时候,优先从本类寻找,若无则向上在父类中寻找 3.重写:子类重新实现父类的方法,覆盖父类之前的方 ...

  3. c#操作sqlite(包含中文支持)

    一个朋友写的,拿来分享给大家,希望有用 原文 Codeusing System; using System.Data; using System.Text.RegularExpressions; us ...

  4. [转]Java 动态代理机制分析及扩展

    引言 Java 动态代理机制的出现,使得 Java 开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象,便能动态地获得代理类.代理类会负责将所有的方法调用分派到委托对象上反射执行,在分派执 ...

  5. List集合

    集合类方便操作,增删查找容易.集合的超级接口collection:1.List: 1.ArrayList:是存在一个数组(Object[]),添加,删除元素很慢,查找很快,元素在内存中是有序的. 2. ...

  6. 我的第一篇博客 ——【ToDoList】小程序开发

    我是一只即将大四的大三狗,这是我的第一篇博客,说来惭愧.今年1月份,学校放寒假的时候开始自学的IOS,放假的时候比较起劲,看了一堆Object-C的视频,然后照着中英文对照的IOS基础开发教程,做了两 ...

  7. Smack[3]用户列表,头像,组操作,用户操作

    用户列表 Smack主要使用Roster进行列表管理的 connection.getRoster(); /** * 返回所有组信息 <RosterGroup> * * @return Li ...

  8. openssl enc 加解密

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  9. 设计模式之十三:适配器模式(Adapter)

    适配器模式: 将一个类的接口转换成另外一个期望的类的接口.适配器同意接口互不兼容的类一起工作. Convert the interface of a class into another interf ...

  10. 插头dp的几个模板

    /* ural1519 求经过全部可行点的哈密顿回路的个数 括号匹配法,转移有点复杂,可是时间空间比較小 */ #include<cstdio> #include<cstring&g ...