• smarty之缓存笔记


    smarty缓存技术


      在smarty中,缓存分为:普通缓存,单模版都缓存,局部缓存。

    缓存:
    1:首选打开缓存配置项:$smarty->caching=true;

    2:缓存生命周期的配置选项:$smarty->cache_lifetime=整秒数

    3:$smarty->is_cached('index.html')判断index.html页面是否缓存,如果缓存,避免io操作

     1 include('./libs/Smarty.class.php');
     2 $smarty=new Smarty();
     3 $conn=mysql_connect('127.0.0.1','root','');
     4 mysql_query('use smarty_cache',$conn);
     5 mysql_query('set nemes gbk',$conn);
     6 
     7 $smarty->caching=true;
     8 //开启缓存
     9 $id=$_GET['id']+0;
    10 $sql='select * from user where id='.$id;
    11 if(!$smarty->is_cached('index.html'))
    12 {
    13 $result=mysql_query($sql,$conn);
    14 $row=mysql_fetch_assoc($result);
    15     $smarty->assign('id',$row['id']);
    16     $smarty->assign('name',$row['name']);
    17     echo '走了数据库';
    18 }
    19 $smarty->display('index.html');


    单模版,多缓存

    1:缓存参数$smarty->display('index.html',$id);
    2:$smarty->is_cached('index.html',$id)判断index.html页面是否缓存,通过id来判断,id可以通过拼凑,可以参考ecshop中的缓存。
    原则:凡是能影响页面内容的变量,就要根据此变量cached_id

    include('./libs/Smarty.class.php');
    $smarty=new Smarty();
    $conn=mysql_connect('127.0.0.1','root','');
    mysql_query('use smarty_cache',$conn);
    mysql_query('set nemes gbk',$conn);
    
    $smarty->caching=true;
    //开启缓存
    $id=$_GET['id']+0;
    $sql='select * from user where id='.$id;
    $cached_id=$id+'XX'
    if(!$smarty->is_cached('index.html',$cached_id))
    {
    $result=mysql_query($sql,$conn);
    $row=mysql_fetch_assoc($result);
        $smarty->assign('id',$row['id']);
        $smarty->assign('name',$row['name']);
        echo '走了数据库';
    }
    $smarty->display('index.html',$cached_id);



    3:局部缓存:
    在模版中不需要缓存的地方,用{insert name='nocachedid'}来表示,那么该处最终的值就是,insert_nocachedid()函数的返回值


     <body>
        这是这是一个smarty缓存技术的页面页面<br/>
        {insert name=getname}
        编号:{$id}&nbsp;姓名:{$name}
    
     </body>
    include('./libs/Smarty.class.php');
    $smarty=new Smarty();
    $conn=mysql_connect('127.0.0.1','root','');
    mysql_query('use smarty_cache',$conn);
    mysql_query('set nemes gbk',$conn);
    function insert_getname()
    {
    
        return $_SESSION['name']
    }
    $smarty->caching=true;
    //开启缓存
    $id=$_GET['id']+0;
    $sql='select * from user where id='.$id;
    if(!$smarty->is_cached('index.html',$id))
    {
    $result=mysql_query($sql,$conn);
    $row=mysql_fetch_assoc($result);
        $smarty->assign('id',$row['id']);
        $smarty->assign('name',$row['name']);
        echo '走了数据库';
    }
    $smarty->display('index.html',$id);

    在ecshop中,用到了smarty模版技术,只能复习下smarty技术了

  • 相关阅读:
    AJAX MANAGER
    关闭IE浏览器的自动RSS阅读功能
    WCF REST Configuration for ASP.NET AJAX and plain REST Services
    jquery, json与ashx的完美结合
    ASP.NET 页面中的 ValidateRequest属性
    ASP.NET中的healthMonitoring
    GZip Compress SoapExtension
    ASP.NET MVC : UrlHelper
    Microsoft Ajax Content Delivery Network
    ASP.NET: TextBox控件如果设置为ReadOnly则PostBack之后可能丢失数据的问题
  • 原文地址:https://www.cnblogs.com/doyourself/p/4065167.html
Copyright © 2020-2023  润新知