缓存

后台页面:

<?php
//缓存:不读数据库,直接显示一个静态页面。优点访问速度快,缺点不能及时的更新显示,用在对数据库操作对于用户浏览体验不影响的地方,缓存文件在cache文件夹里面(把缓存好的静态页面直接显示出来)

//1.定义一个该页面的缓存文件路径
$filename = "../cache/testhuancun.html";

//2.设置缓存时间
$time=5;

//3.判断这个缓存文件是否存在,存在读取缓存文件,不存在走查询数据库代码
if(!file_exists($filename) || filemtime($filename)+$time<time())//缓存文件不存在或者修改时间+5秒小于当前时间的时候走if,设置5秒的缓存间隔时间
{
    //开启内存缓存
    ob_start();
    include("../init.inc.php");
    include("../DBDA.php");
    $db = new DBDA();
    
    $sql = "select * from nation";
    $attr = $db->Query($sql);
    
    $smarty->assign("nation",$attr);
    $smarty->display("test.html");
    
    //把内存里面的内容读出来
    $nr = ob_get_contents();
    
    //将读到的内容存放到缓存文件
    file_put_contents($filename,$nr);
    
    //清除内存缓存
    ob_flush();
    
    echo "##############################";    //如果显示echo输出的内容,说明5秒缓存时间已过期,用户再浏览网页,走数据库,如果不显示的话说明缓存还没到期,走else,直接调取静态页面显示
}
else
{
    include($filename);
}

静态页面:

<body>
<table width="100%" border="1">
    <tr><td>代号</td><td>名称</td></tr>
    <{foreach $nation as $v}>
        <tr>
            <td><{$v[0]}></td>
            <td><{$v[1]}></td>
        </tr>
    <{/foreach}>
</table>
</body>

 

posted on 2016-12-22 11:56  向前看!明天会更好!  阅读(105)  评论(0编辑  收藏  举报