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 ...
随机推荐
- WCF中DataContractAttribute 类
一.这个类的作用 使用提供的数据协定,将类型实例序列化和反序列化为 XML 流或文档.无法继承此类,(DataContractSerializer 用于序列化和反序列化在 Windows Commun ...
- 对dataTable去重
using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.T ...
- 转:C#精髓 第四讲 GridView 72般绝技
说明:准备出一个系列,所谓精髓讲C#语言要点.这个系列没有先后顺序,不过尽量做到精.可能会不断增删整理,本系列最原始出处是csdn博客,谢谢关注. C#精髓 第四讲 GridView 72般绝技 作者 ...
- web程序调试方法
1.火狐浏览器查看链接指向的后台方法(controller方法) f12 进入firebug 点击bug旁边的按钮 即第一排第二个按钮 将鼠标划到想要找的链接 在firebug中显示响应的后台跳转.d ...
- 【Modal】
1.Bootstrap Modal 文档里标签.属性.方法.事件都写的很清楚 2.AngularUI - Bootstrap UI Bootstrap 2.1 $scope.open = functi ...
- Quantum & r2q
Quantum & r2q Let's assume we have 2 classes with the same parent : Parent : ceil = rate = 100 c ...
- RG100A-AA 中大校园网上网及远程配置
由于无线网卡用得不爽,wifi经常断,所以想整个路由器,造福群众.在朋友介绍下购得一台已经刷好 Openwrt 的上海贝尔RG100A-AA路由器,根据下面的简单步骤,就能连接上校园网. 一.准备工作 ...
- Javascript中的函数、this以及原型
关于函数 在Javascript中函数实际上就是一个对象,具有引用类型的特征,所以你可以将函数直接传递给变量,这个变量将表示指向函数“对象"的指针,例如: function test(mes ...
- 【渗透测试学习平台】 web for pentester -3.XSS
Example 1 http://192.168.91.139/xss/example1.php?name=hacker<script>alert('xss')</script> ...
- codeforces hungry sequence 水题
题目链接:http://codeforces.com/problemset/problem/327/B 这道题目虽然超级简单,但是当初我还真的没有想出来做法,囧,看完别人的代码恍然大悟. #inclu ...