smarty缓存

huancun.php代码

<?php
$p =1;
if( !empty($_GET["page"]))
{
$p =$_GET["page"];
}
$filename="../../cache/huancun{$p}.html";//缓存文件存放的位置
//判断缓存文件是否存在,如果存在直接调用,没有没有重新缓存。
$time=30;//缓存时间10秒

if(file_exists($filename) && (filemtime($filename)+$time >= time()))
{
//直接调用缓存

include("$filename");

}
else
{
ob_start();//开启内存缓存
include("../../init.inc.php");
include("../../DBDA.class.php");
$db=new DBDA();
$sall=" select count(*) from course ";
$zts =$db->StrQuery($sall);

include("../../page.class.php");
$page =new Page($zts,5);

$sql="select * from course ".$page->limit;
$arr =$db->Query($sql);
$smarty->assign("fpage",$page->fpage());
$smarty->assign("shuzu",$arr);
$smarty->display("huancun.html");

$str=ob_get_contents();//获取内存中的内容
file_put_contents($filename,$str);
ob_flush();//关闭内存缓存
echo"这还没缓存";

}

显示页面代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<table width="100%" cellpadding="0px" cellspacing="0px" border="1px">
<tr>
<td>代号</td>
<td>课程</td>
<td>类型</td>
<td>操作</td>

</tr>
<{foreach $shuzu as $v}>

<tr>
<td><{$v[0]}></td>
<td><{$v[1]}></td>
<td><{$v[2]}></td>
<td><a href="xiugai.php?code=<{$v[0]}>">修改</a></td>

</tr>
<{/foreach}>
</table>
<div><{$fpage}></div>
</body>
</html>

效果

smarty缓存

此时没有缓存文件

走起来后:

smarty缓存

smarty缓存

默认显示的是第一页数据,缓存路径已经有了缓存文件。

30秒后:

smarty缓存

'这还没缓存"不在出现,说明页面加载的是缓存文件。

依次点2,3,4,5页后

smarty缓存

30秒后

smarty缓存

页面加载的是缓存文件,缓存路径文件:

smarty缓存

缓存页面均存在,操作成功。

上一篇:正确理解DTO、值对象和POCO


下一篇:DiskLruCache硬盘缓存技术详解