片段缓存指的是缓存页面内容中的某个片段。默认缓存 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. Sobel算子及C++实现

    Sobel 算子是一个离散的一阶微分算子,用来计算图像灰度函数的近似梯度. 在空间域上Sobel算子很容易实现,执行速度快,对部分噪声具有平滑作用,还能够提供较为精确的边缘方向信息,缺点是边缘定位精度 ...

  2. 5.Git使用详细教程

    转自:https://www.cnblogs.com/seven-ahz/p/7712125.html 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的 ...

  3. BZOJ 2096 单调队列

    思路: 偷懒用的STL //By SiriusRen #include <deque> #include <cstdio> using namespace std; struc ...

  4. JavaScript实现记住密码功能

    用js实现记住密码功能,但是前端记住密码不安全,最好还是不要用.我感觉这个记住密码应该是通过与后台建立一个会话来实现. 这个效果的测试地址在:http://ofoyou.com/blog/rePass ...

  5. html 移动端关于长按图片弹出保存问题

    在做html5项目的时候有个需求是要拖动一个图片,但是又不要用户长时间按着弹出保存框.首先想到的就是在点图片的时候阻止默认事件的发生: js停止冒泡· function myfn(e){ window ...

  6. C++线程传参数

    struct TThreadParam { LPVOID pThis; int visionIndex; }; class CMilTestDlg : public CDialog { // Cons ...

  7. Android 手势

    GestureDetector:手势监听类,通常在View的setOnTouchListener方法中设置TouchListener,在TouchListener的onTouch函数中把MotionE ...

  8. Springboot设置跨域的三种方式

    方式一(精细配置) 在需要跨域的整个Controller或者单个方法上添加@CrossOrigin注解 方式二(全局配置) @Configuration public class WebMvcConf ...

  9. Uncaught TypeError: Cannot read property 'offsetTop' of undefined at VueComponent.handleScroll

    mounted() { window.addEventListener("scroll", this.handleScroll); }, beforeDestroy() { win ...

  10. grant 命令

    创建拥有所有权限账户.可以远程连接.并且允许用户再将该权限授予其它用户: grant all privileges on *.* to root @"%" identified b ...