zoukankan      html  css  js  c++  java
  • smarty静态缓存

    缓存能让程序访问起来更加快速,调数据库的数量变少,不能实时的跟数据库同步,

    一般缓存文件都放在smarty文件下cach文件夹中;

    建立缓存的PHP和HTML文件;

    先编辑PHP文件来查询显示数据库当中的文件;

    <?php
    //定义 相对于这个页面的一个文件保存路径
    $filname ="../cache/huancun.html";
    
    
    //查询数据并显示
    include("../init.inc.php");
    include("../dbda.class.php");
    $db= new dbda();
    $sql = "select * from car";
    $arr = $db->query($sql);
    
    $smarty->assign("shuzu",$arr);
    $smarty->display("huancun.html");//调用display模版显示

    在建立HTML用来显示的样式

    <h1>数据列表</h1>
    <table width="100%" border="1" cellpadding="0" cellspacing="0">
        <tr>
            <td>代号</td>
            <td>名称</td>
            <td>操作</td>
        </tr>
      <{foreach $shuzu as $v}>
          <tr>
            <td><{$v[0]}></td>
            <td><{$v[1]}></td>
            <td>操作</td>
        </tr>
      <{/foreach}>

    显示结果如下

    然后在PHP文件中加入缓存的代码; 打开网页就会显示,刷新一遍就会直接取问价夹中找了

    <?php
    //定义 相对于这个页面的一个文件保存路径
    $filname ="../cache/huancun.html";//缓存文件存放的位置
    
    //判断缓存文件是否存在,如果缓存文件存在直接调用缓存,如果缓存文件不存在,重新缓存
    if(file_exists($filname))//判断文件是否存在
    {
        include($filname);//直接拿来显示
        }
        else{
            //重新缓存
            ob_start();//开启内存缓存
            
            //查询数据并显示
    include("../init.inc.php");
    include("../dbda.class.php");
    $db= new dbda();
    $sql = "select * from car";
    $arr = $db->query($sql);
    
    $smarty->assign("shuzu",$arr);
    $smarty->display("huancun.html");//调用display模版显示
            
    //从缓存里取内容
    $str = ob_get_contents();        
    file_put_contents($filname,$str);//保存缓存
            
            ob_flush();//关闭内存缓存
            echo"WOWKWJWJWKJWKWJKWJWKWJWKJWKJW";
            
            }

    实线缓存后就会存到以下的文件夹中;

    加缓存时间

    $time = 10;//缓存有效期10s
    
    
    //判断缓存文件是否存在,如果缓存文件存在直接调用缓存,如果缓存文件不存在,重新缓存
    if(file_exists($filname) && filemtime($filname)+$time>=time())//判断文件是否存在 上一次修改时间加个条件修改时间大于当前时间。

    给页面加分页

    $sall = "select count(*) from car ";
    $zts = $db->Strquery($sall);
    include("../page.class.php");
    $page = new Page($zts,5);
    
    
    $smarty->assign("fpage",$page->fpage());

    让页面默认选第一页; 因为不可能只访问一个一页面所以要实现多个页面;

    $p = 1;
    if(!empty($_GET["page"]))
    {
       $p = $_GET["page"];
    }
    //定义 相对于这个页面的一个文件保存路径
    $filname ="../cache/huancun{$p}.html";//缓存文件存放的位置

  • 相关阅读:
    C#委托 delegate
    认识反射
    【译】修改大XML文件的有效方法
    学习javascript并解读JQuery
    ASP.Net用户验证的实现
    渴望
    C++中常见的一些小问题总结(一)
    struts2:关于EL能够获得action的属性
    排序算法总结
    WebService开发实例
  • 原文地址:https://www.cnblogs.com/gdbaby/p/6514661.html
Copyright © 2011-2022 走看看