首页 > 编程 > PHP > 正文

Yii缓存之片段缓存

2020-03-22 19:16:15
字体:
来源:转载
供稿:网友
  • 我们网站在进行访问的时候,有一些信息在相对一段时间之内是稳定,我们就把这样的信息放入缓存里边,这样用户每次来访问就是访问缓存的信息,对于大负载量的网站,可以明显提高网站的性能。


    YII本身缓存类型:

    缓存分类:

    片段缓存 一个页面划分为几个区域,这几个区域相对比较独立,设计缓存的时候,可以为每个区域独立开发制作缓存

    页面缓存 :对整个页面进行缓存

    动态缓存

    数据缓存

    使用片段缓存步奏:

    1. 在程序里边设置缓存

                            <form name="compareForm" action="compare.php" method="post" onsubmit="return compareGoods(this);">                            <div html' target='_blank'>class="clearfix goodsBox" style="border: medium none; padding: 11px 0pt 10px 5px;">                                <!--片段缓存 实现-->                                <?php                                /*if($this->beginCache('缓存名称')){                                 * duration 设置过期时间                                 * varyByParam 缓存变化                                 * dependency 缓存依赖                                 */                                if($this->beginCache('goods',array(                                    'duration'=>3600,                                    'varyByParam' => array('page'),                                    'dependency' =>array(                                        'class'=>'system.caching.dependencies.CDbCacheDependency',                                        'sql'=>'select sum(goods_price) from {{goods}}',                                    )                                ))){                                ?>                                <?php                                foreach($goods_infos as $_v){                                ?>                                <div class="goodsItem">                                    <a href="./index.php?r=goods/detail&id=<?php echo $_v->goods_id ?>" target="_blank"><img src="<?php echo $_v->goods_big_img; ?>" alt="<?php echo $_v->goods_name ?>" class="goodsimg"></a><br />                                    <p><a href="#" title="诺基亚N85"><?php echo $_v->goods_name ?></a></p>                                    <font class="market_s">¥<?php echo $_v->goods_price ?>元</font><br />                                    <font class="shop_s">¥<?php echo $_v->goods_price ?>元</font><br />                                    <a href="#"><img src="<?php echo IMG_URL; ?>goumai.gif"></a>                                     <a href="#"><img src="<?php echo IMG_URL; ?>shoucang.gif"></a>                                </div>                                <?php                                }                                ?>                                <?php $this -> endCache();} ?>                                                                                            </div>                        </form>


    2. 在主配置文件main.php里边配置缓存组件cache(在这个地方决定使用哪种缓存) 我们的缓存是文件缓存,缓存的信息在目录runtime存放


    设置缓存文件的过期时间

    Duration ()

    我们为缓存文件设置过期时间,在没有过期的时候系统都会使用缓存文件,如果已经过期,那么系统要重新生成缓存文件。

    缓存变化:

    我们的商品列表有实现片段缓存,那么在访问其他其它页码信息的时候也是访问这个缓存页面,因为,每页信息的路由都是一样的(goods/category),那么系统会误认为当前系统访问的页面是一个页面。当时页面的page参数是不一样的。

    因此我们需要根据参数的变化生成不同的缓存文件。


    根据页码不同,生成不同缓存文件:

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表