片段缓存指的是缓存页面内容中的某个片段。默认缓存 60秒。

return $this->renderPartial("ca");                         //控制器就简单的调一个页面即可。

视图 ca.php 内(方式一 缓存开关):
<php

$enabled=false;          //此值为 false 将关闭缓存,内容部分改变则会立马改变。相应,true就是开启缓存。

?>

<?php if($this->beginCache("cache_div",['enabled'=>$enabled])){ ?>       

   2222333333                                 //这里的值将会被缓存,在缓存时间内更改这里的值将不会发生任何变化。

<?php  $this->endCache(); };

?>

////如果缓存中存在该内容,beginCache() 方法将渲染内容并返回 false,因此将跳过内容生成逻辑。否则, 内容生成逻辑被执行,一直执行到 endCache() 时,生成的内容将被捕获并存储在缓存中,每个片段缓存需要全局唯一的 $id【就是cache_div】 标记。

视图 ca.php 内(方式二 普通缓存):

<?php if($this->beginCache("cache_div")){ ?>       

   2222333333                                 //这里的值将会被缓存,在缓存时间内更改这里的值将不会发生任何变化。

<?php  $this->endCache(); };

?>

视图 ca.php 内(方式三 时间设置):

<?php

   $time=15;         //缓存失效时间,缓存将在15秒后失效

?>

<?php if($this->beginCache("cache_div",['duration'=>$time])){ ?>       

   2222333333                                

<?php  $this->endCache(); };

?>

视图 ca.php 内(方式四 依赖缓存):

<?php

$dependency = [

    'class' => 'yii\caching\DbDependency',          
//根据数据改变而使得缓存失效,保证数据及时更新。

    'sql' => 'SELECT MAX(updated_at) FROM post',

];

?>

<?php

    if ($this->beginCache("cache_div",['dependency' => $dependency])) {

        // ... 在此生成内容 ...

        $this->endCache();

    }

?>

视图 ca.php 内(方式五 依赖文件缓存):

<?php

$dependency = [

    'class' => 'yii\caching\FileDependency',           //根据文件内容改变使得缓存失效,来更新缓存数据。

    'fileName' => 'hw.txt',                           
//此文件内容改变,数据则失效。此文件在 前或后台/web 目录下

];

?>

<?php

    if ($this->beginCache("cache_div", ['dependency' => $dependency])) {

        // ... 在此生成内容 ...

        $this->endCache();

    }

?>

         注意:默认缓存时间 60s,即使文件不改变,60s 后如果内容变了,缓存仍然更新。可能是为了保证数据准确性才这么设置的。

yii2.0缓存篇之片段缓存的更多相关文章

  1. Yii的缓存机制之片段缓存

      一.首先在main.php配置缓存组件 在components里面添加cache项.代码如下: // application components 'components'=>array( ...

  2. yii2.0缓存篇之页面缓存

    页面缓存: 如果整个页面都不会发生改变,就可以使用页面缓存缓存整个页面. public function behaviors(){            //此方法[也叫行为]会提前控制器内其他方法执 ...

  3. yii2.0缓存篇之文件缓存

    文件缓存: 在 frontend/config/main.php/components数组下添加: 'cache'=>[      'class'=>'yii\caching\FileCa ...

  4. 探索ASP.NET MVC5系列之~~~5.缓存篇(页面缓存+二级缓存)

    其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...

  5. AspnetCore 缓存篇

    AspnetCore 缓存篇 一.缓存的作用 怎样理解缓存: 其实所有的程序,架构,优化,线程...等技术手段,最终的目的都是如何使产品快速的响应用户的操作,提高用户的体验性,目标都是为了系统的使用者 ...

  6. Yii 2.0 使用片段缓存

    网站首页footer中的菜单标题是从数据库读取并显示处理的. 也就是 <footer>标题里面是foreach.这样每个人打开网站就查询遍历效率会很低. <footer class= ...

  7. Yii2.0数据库缓存依赖发布的使用理解

    对于产品中经常需要生成一些缓存类的东西,比如系统基础配置,商品分类等,每次修改调整后都要手动进行缓存发布,是不是非常麻烦!这时候Yii2.0的缓存依赖发布就起到至关重要的作用了!现将主要的使用流程介绍 ...

  8. yii2.0使用之缓存

    1.片段缓存(针对于视图中的某部分进行缓存): <?php 设置有效时间 $time=15; 缓存依赖,存入文件.当文件内容发生改变是才会刷新新内容 $dependecy=[ 'class'=& ...

  9. yii2.0缓存的使用

    1.片段缓存(针对于视图中的某部分进行缓存): <?php 设置有效时间 $time=15; 缓存依赖,存入文件.当文件内容发生改变是才会刷新新内容 $dependecy=[ 'class'=& ...

随机推荐

  1. java算法数据结构

    原文地址:github.com/kdn251/interviews 译文出自:掘金翻译计划 译者:王下邀月熊 校对者:PhxNirvana.根号三 这个 链接 用来查看本翻译与英文版是否有差别(如果你 ...

  2. 模拟邮箱输入邮箱地址、收藏标签。input框输入内容后回车,内容显示成小方块并带删除按钮。

    模拟邮箱输入邮箱地址.收藏标签: 文本框输入文字后按回车键或者分号键,输入框中的文字变成小块并带删除按钮和操作. 页面代码: <!DOCTYPE html> <%@ page lan ...

  3. if switch

    一.基本if结构: 1.语法:if (条件){ 代码块 } 2.执行顺序:先判断条件,条件成立则行{}内的代码,不成立则跳出if结构快既不执行{}内的代码. 3.什么情况下要用基本if选择结构:当需要 ...

  4. http请求常出现的状态码

    服务器返回的 响应报文 中第一行为状态行,包含了状态码以及原因短语,用来告知客户端请求的结果. 状态码 类别 原因短语 1XX Informational(信息性状态码) 接收的请求正在处理 2XX ...

  5. 新版Eclipse找不到Java EE Module Dependencies选项

    在 Eclipse Galileo (3.5) 版本或Ganymede (3.4) 等更老的版本中, 你可以使用Java EE Module Dependencies 选项来组织你的项目结构,确保依赖 ...

  6. swift语言点评十三-Lazy

    Lazy Stored Properties A lazy stored property is a property whose initial value is not calculated un ...

  7. oracle查询优化之子查询条件优化

    环境:oracle 11g 现有a表与b表通过a01字段关联,要查询出a表的数据在b表没有数据的数据:sql如下 ) ) 因为flag是虚拟字段没有走不了索引导致这条sql执行起来特别慢 310W条数 ...

  8. vue 键盘监听事件

    <template> <div class="hello"> <input v-on:keyup.enter="submit" t ...

  9. [Typescript] Promise based delay function using async / await

    Learn how to write a promise based delay function and then use it in async await to see how much it ...

  10. IOS音频架构之Audio Unit

    在前面的章节部分我们已经对IOS音频结构有了一个清晰的认识,知道Audio Unit是位于整个音频结构的最底层,这一层非常多API已经開始和硬件打交道了.所以比較复杂,有了前面的基础再来看这个部分就比 ...