yii2.0缓存篇之片段缓存
片段缓存指的是缓存页面内容中的某个片段。默认缓存 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缓存篇之片段缓存的更多相关文章
- Yii的缓存机制之片段缓存
一.首先在main.php配置缓存组件 在components里面添加cache项.代码如下: // application components 'components'=>array( ...
- yii2.0缓存篇之页面缓存
页面缓存: 如果整个页面都不会发生改变,就可以使用页面缓存缓存整个页面. public function behaviors(){ //此方法[也叫行为]会提前控制器内其他方法执 ...
- yii2.0缓存篇之文件缓存
文件缓存: 在 frontend/config/main.php/components数组下添加: 'cache'=>[ 'class'=>'yii\caching\FileCa ...
- 探索ASP.NET MVC5系列之~~~5.缓存篇(页面缓存+二级缓存)
其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...
- AspnetCore 缓存篇
AspnetCore 缓存篇 一.缓存的作用 怎样理解缓存: 其实所有的程序,架构,优化,线程...等技术手段,最终的目的都是如何使产品快速的响应用户的操作,提高用户的体验性,目标都是为了系统的使用者 ...
- Yii 2.0 使用片段缓存
网站首页footer中的菜单标题是从数据库读取并显示处理的. 也就是 <footer>标题里面是foreach.这样每个人打开网站就查询遍历效率会很低. <footer class= ...
- Yii2.0数据库缓存依赖发布的使用理解
对于产品中经常需要生成一些缓存类的东西,比如系统基础配置,商品分类等,每次修改调整后都要手动进行缓存发布,是不是非常麻烦!这时候Yii2.0的缓存依赖发布就起到至关重要的作用了!现将主要的使用流程介绍 ...
- yii2.0使用之缓存
1.片段缓存(针对于视图中的某部分进行缓存): <?php 设置有效时间 $time=15; 缓存依赖,存入文件.当文件内容发生改变是才会刷新新内容 $dependecy=[ 'class'=& ...
- yii2.0缓存的使用
1.片段缓存(针对于视图中的某部分进行缓存): <?php 设置有效时间 $time=15; 缓存依赖,存入文件.当文件内容发生改变是才会刷新新内容 $dependecy=[ 'class'=& ...
随机推荐
- zzuoj--10424--无聊的课(简单几何)
10424: 无聊的课 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 81 Solved: 16 [Submit][Status][Web Boar ...
- KMP字符串查找算法
#include <iostream> #include <windows.h> using namespace std; void get_next(char *str,in ...
- SpringCloud学习笔记(14)----Spring Cloud Netflix之Hystrix对Feign的支持
1. Hystrix对Feign的支持 添加Feign中IUserBiz的实现类HystrixFallBack: package com.wangx.cloud.springcloud02consum ...
- 将对象a的属性赋值给对象b
BeanUtils.copyProperties(a,b); 将a的属性赋值给b(ab的共同属性)
- json对象与其字符串之间的转换
在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键.例如: JSON字符串:var str1 = '{ &qu ...
- 洛谷3627 [APIO2009]抢掠计划
题目描述 输入格式: 第一行包含两个整数 N.M.N 表示路口的个数,M 表示道路条数.接下来 M 行,每行两个整数,这两个整数都在 1 到 N 之间,第 i+1 行的两个整数表示第 i 条道路的起点 ...
- CodeForces-1007A Reorder the Array 贪心 田忌赛马
题目链接:https://cn.vjudge.net/problem/CodeForces-1007A 题意 给个数组,元素的位置可以任意调换 问调换后的元素比此位置上的原元素大的元素个数最大多少 思 ...
- 一:1.2【print&input与变量和运算符】
[路径] 绝对路径:从根目录开始链接的路径 --->cd C:\Windows\Boot\DVD\EFI\en-US 相对路径:不从根目录开始链接的路径 ----> cd Boot\DV ...
- python基础9 (迭代器、生成器)
1.可迭代对象 迭代:将某个数据集内的数据“一个挨着一个的取出来” 可迭代协议:可以被迭代要满足的要求,即内部含有__iter__()方法 可迭代的类型:字符串.列表.元组.字典.集合特点:惰性运算 ...
- mysql给某字段随机赋特定范围的整数值
[引] mysql中随机生成一些范围内的整数有时候是很有用的,用到了2个函数 1.floor(f) 返回一个不大于f的最大整数 2.rand(),rand(n) 返回一个随机浮点值 v ,范围在 0 ...