• smarty的常用方法(二)の缓存


    一、smarty缓存的应用(页面缓存)

     smarty缓存的用法:
     1、开启
     2、配置缓存的生命周期
     3、判断是否缓存并是否从数据库取数据
     4、输出

    例如

    //开启缓存
    $smarty
    ->caching=true; //设置一个缓冲的生命周期 $smarty->cache_lifetime=3600; //设置缓存目录,用于存储缓存文件 $smarty->cache_dir='./cache'; if(!$smarty->isCached('01.html')){ echo '是否走了缓存'; }

    为了缓解数据库的压力,减少不必要的对数据库的访问,缓存是很好的解决方案

    二、局部缓存

    smarty在页面缓存的情况下,可以设置部分不缓存,这是比较有用的,因为页面的某部分,比如随机广告,股票信息,时间等等,
    在smarty中,控制局部不缓存的方法

    1、在标签中控制,该标签不缓存  例:{$time|date_format:'%Y-%m-%d %H:%M:%S'  nocache}

    2、控制一片标签不缓存    例: {nocache}{$time|date_format:'%Y-%m-%d %H:%M:%S'}{/nocache}

    3、在PHP中,赋值时,就控制不缓存(smarty3中新增的) 例如:$smarty->assign('time',$time,true);第三个参数是控制nocache的,为真表示不缓存

    4、模板文件中

    {insert name='xxx' parm1='v1' parm2='v2'} 

    请求文件中(.php)

    function insert_welcome($parm,$smarty){
        echo 'nihao'.$parm['user'].rand(1, 100);
    }
    原理是调用上面的返回值

    三、单模板,多缓存 生成缓存模板的时候传入id或者其他值

    原理:是生成缓存的时候,可以再传一个‘缓存id’。如果id不同,生成的缓存文件则不同

    哪些参数要影响页面的内容,就需要把那些参数当成‘缓存id’
    比如page=4&cat=3 第3栏目的第4页,
    page和cat都要影响结果,这2个参数都要进缓存id才可以      memcached(缓存数据,更精细的控制缓存数据)
    例:$smarty->display('01.html',$id);

    四、缓存的删除

    可以删除对应的id,如果什么都不写,则删除01.hmtl对应的所以模板缓存

    $smarty->clearCache('01.html',$id);

    五、模板调试

    有时出于调试的目的,临时不让缓存,但是又不想修改主代码,可以加一个选项

    $smarty->force_cache = true;

  • 相关阅读:
    【原】戏说Java
    git分支branch合并到主分支master
    环境搭建
    zookeeper简单实战
    zookeeper介绍
    临时表与中间表
    避免活跃性
    sss
    sss
    sss
  • 原文地址:https://www.cnblogs.com/hhfhmf/p/4820849.html
Copyright © 2020-2023  润新知