smarty缓存技术
后台:
<?php
//要求:当存在缓存文件,直接输出,不存在缓存文件,自己创建缓存,输出
//步骤:
//定义该页面存放缓存文件的路径
$filename="../../cache/cache.html";
//定义缓存有效期
$cachetime=5;
//判断是否存在缓存或是否过期
if(!file_exists($filename) || time()-filemtime($filename)>$cachetime)//现在的时间-缓存创建时间
{
//开启内存缓存--将下面执行后的页面代码存到内存
ob_start();
include ('../../init.inc.php');
include ("../../DBDA.php");
$dx=new DBDA();
$sql="select * from car";
$attr=$dx->Query($sql);
$smarty->assign("car",$attr);
$smarty->display("main.html");
//获取内存缓存里的页面代码
$content=ob_get_contents();
//将页面代码存到缓存文件里
file_put_contents($filename,$content);
//清除内存缓存并输出显示
ob_flush();
echo "#########";//代表第一次执行
}
else
{
include ($filename);//如果存在缓存,直接读取
}
//如果刷新页面没有改变的话,可能是有缓存文件,为了避免这样,需设置缓存有效期
前台:
<body>
<table border="1" width="80%" align="center" cellpadding="0" cellspacing="0">
<tr>
<th>代号</th>
<th>汽车名称</th>
<th>油耗</th>
<th>价格</th>
</tr>
<{foreach $car as $v}>
<tr>
<td><{$v[0]}></td>
<td><{$v[1]}></td>
<td><{$v[4]}></td>
<td><{$v[7]}></td>
</tr>
<{/foreach}>
</table>
</body>
分页缓存:
后台:
<?php
//分页缓存
//要求:实现每一页都缓存
//步骤:
//取当前页
$p=1;
if(!empty($_GET["page"]))
{
$p = $_GET["page"];
}
//定义缓存文件存放路径
$filename = "../../cache/cahetesta{$p}.html";
//定义缓存有效期
$cachetime=5;
//判断缓存是否存在或是否过期
if(!file_exists($filename) || time()-filemtime($filename)>$cachetime)
{
ob_start();//开启内存缓存
include("../../init.inc.php");
include("../../DBDA.php");
$db = new DBDA();
include("../../page.class.php");
$szs = "select count(*) from car";
$zs = $db->StrQuery($szs);
$page = new Page($zs,5);
$xinxi = $page->fpage();
$sql = "select * from car ".$page->limit;
$attr = $db->Query($sql); $smarty->assign("car",$attr);
$smarty->assign("xinxi",$xinxi);
$smarty->display("maina.html");
//获取内存缓存页面代码
$nr = ob_get_contents();
//将页面代码存放到缓存文件下
file_put_contents($filename,$nr);
//清除内存缓存并输出
ob_flush(); echo "##########################";//用来检查是否是第一次访问或过期与否
}
else
{
include($filename);
}
前台:
<body>
<h1>汽车信息</h1>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>代号</td>
<td>汽车名称</td>
<td>油耗</td>
<td>价格</td>
</tr> <{foreach $car as $v}>
<tr>
<td><{$v[0]}></td>
<td><{$v[1]}></td>
<td><{$v[4]}></td>
<td><{$v[7]}></td>
</tr>
<{/foreach}> </table>
<div><{$xinxi}></div>
</body>
smarty缓存技术的更多相关文章
- Smarty缓存技术总结
大家应该都知道合理使用缓存能有效的减轻网站的服务器压力,php Smarty作为一个非常优秀的php模板引擎,它为我们提供了非常简单而多样化的缓存操作,下面就让我们学习一下smarty缓存操作方面的一 ...
- Smarty的配置与高级缓存技术
转之--http://www.cnblogs.com/-run/archive/2012/06/04/2532801.html Smarty 是一个出色的PHP模板引擎,它分离了逻辑代码和user i ...
- 网站缓存技术总结( ehcache、memcache、redis对比)
网站技术高速发展的今天,缓存技术已经成为大型网站的一个关键技术,缓存设计好坏直接关系的一个网站访问的速度,以及购置服务器的数量,甚至影响到用户的体验. 网站缓存按照存放的地点不同,可以分为客户端缓存. ...
- php缓存技术总结
缓存是指临时文件交换区,电脑把最常用的文件从存储器里提出来临时放在缓存里,就像把工具和材料搬上工作台一样,这样会比用时现去仓库取更方便.因为缓存往往使用的是RAM(断电即掉的非永久储存), ...
- PHP中九大缓存技术总结
PHP缓存包括PHP编译缓存和PHP数据缓存两种.PHP是一种解释型语言,属于边编译边运行的那种.这种运行模式的优点是程序修改很方便,但是运行效率却很低下.PHP编译缓存针对这种情况做改进处理,使得P ...
- smarty模板技术
一.什么是smarty?smarty是一个使用php写出来的模板php模板引擎,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用php程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美 ...
- smarty详细使用教程(韩顺平smarty模板技术笔记)
MVC是一种开发模式,强调数据的输入.处理.显示是强制分离的 Smarty使用教程1.如何配置我们的smarty解压后把libs文件夹放在网站第一级目录下,然后创建两个文件夹templates 存放模 ...
- 网站缓存技术(Redis、Memcached、Ehcache)
Redis 是什么? 通常而言目前的数据库分类有几种,包括 SQL/NSQL,,关系数据库,键值数据库等等等. 分类的标准也不一,Redis本质上也是一种键值数据库的,但它在保持键值数据库简单快捷特点 ...
- ASP.NET Core 缓存技术 及 Nginx 缓存配置
前言 在Asp.Net Core Nginx部署一文中,主要是讲述的如何利用Nginx来实现应用程序的部署,使用Nginx来部署主要有两大好处,第一是利用Nginx的负载均衡功能,第二是使用Nginx ...
随机推荐
- magento -- 如何为商品分类(category)添加自定义属性
在magento 中,由于使用了强大的EAV设计方法,我们可以很方便的给商品添加任意数量的属性.然而magento 没有给我们提供给商品分类添 加属性的功能.尽管我们知道magento所采用的EAV设 ...
- Android FM模块学习之二 FM搜索频道
最近在学习FM模块,FM是一个值得学习的模块,可以从上层看到底层.上层就是FM的按扭操作和界面显示,从而调用到FM底层驱动来实现广播收听的功能. 看看FM启动流程:如下图: 先进入FMRadio.ja ...
- linxu c语言 fcntl函数和flock函数区别 【转】
flock和fcntl都有锁的功能,但他们还有一点小小的区别: 1.flock只能加全局锁,fcntl可以加全局锁也可以加局部锁. 2.当一个进程用flock给一个文件加锁时,用另一个进程再给这个文件 ...
- 【题解】【区间】【二分查找】【Leetcode】Insert Interval & Merge Intervals
Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessa ...
- 博客Mac桌面编辑器-cnblogs
Mac篇 公司的机器内存只有8G,不想再大动干戈为了Windows Live Writer装个Vmware了,谷歌娘讲MarsEdit不错,那就试试用这个写个试用贴呗 就是这货了,果然是火星来的, ...
- 一个js对象的代码结构
初步理解的js里一个对象的写法: GameLayer GameLayer.js var GameLayer = cc.Layer.extend({ //私有属性(带下划线"_&q ...
- ZOJ 1234 Chopsticks
原题链接 题目大意:有这么一个公式 A,B,C(A<=B<=C), (A-B)^2来衡量这对数字的好坏,值越小越好.现在给出一个数组,要求每三个配对,最后得到的每组值总和最小. 解法:我是 ...
- spring二级缓存的ehcache 的 配置文件
<ehcache> <!-- Sets the path to the directory where cache .data files are created. If the p ...
- [转] shiro简单配置
shiro(1) 注:这里只介绍spring配置模式. 因为官方例子虽然中有更加简洁的ini配置形式,但是使用ini配置无法与spring整合.而且两种配置方法一样,只是格式不一样. 涉及的jar包 ...
- radhat 6.4/centos 6.4 下编译安装 最新ruby 2.1.5
#安装编译环境 yum groupinstall "Development tools" 或者 yum install gcc gcc-c++ gcc-g77 flex bison ...