Yii2片段缓存详解

片段缓存

1 // ..../view/site/index.php页面
2 <?php
3 if($this->beginCache(‘cache‘)) {
4     echo "<p class=‘cache‘>这里待会会被缓存</p>";
5     $this->endCache();
6 }
7 echo "<p class=‘no_cache‘>这里不会被缓存</p>";
8 ?>

片段缓存--过时间期

// ..../view/site/index.php页面
<?php
$duration = 15; // 设置过期秒数
if($this->beginCache(‘cache‘ , [‘duration‘ => $duration])) {
    echo "<p class=‘cache‘>这里待会会被缓存</p>";
    $this->endCache();
}
echo "<p class=‘no_cache‘>这里不会被缓存</p>";
?>

片段缓存--依赖dependency

// ..../view/site/index.php页面
<?php
$dependency = [ // 这里用文件依赖举例
    ‘class‘ => ‘\yii\caching\FileDependency‘,
    ‘fileName‘ => ‘robots.txt‘
];
if($this->beginCache(‘cache‘ , [‘dependency‘ => $dependency])) {
    echo "<p class=‘cache‘>这里待会会被缓存</p>";
    $this->endCache();
}
echo "<p class=‘no_cache‘>这里不会被缓存</p>";
?>

循环嵌套片段缓存

// ..../view/site/index.php页面
<?php
if($this->beginCache(‘cache‘)) {
    // ...在此生成内容...
    if ($this->beginCache(‘cache‘)) {
        // ...在此生成内容...
        $this->endCache();
    }
    // ...在此生成内容...
    $this->endCache();
}
?>
时间: 2024-12-15 12:47:44

Yii2片段缓存详解的相关文章

Yii2页面缓存详解

class TestController extends Controller{ // 该方法会在其他方法之前执行 public function behaviors() { // 声明缓存配置 return [ // 需要注意的这里是二维数组 [ 'class' => 'yii\filters\PageCache', // 设置需要加载的缓存文件 'only' => ['index'], // 设置需要缓存的控制器 'duration' => 100, // 设置过期时间 'depen

Cocos2d-X研究之v3.x纹理缓存详解

 概述 在游戏中需要加载大量的纹理图片,这些操作都是很耗内存和资源的. 当游戏中有个界面用到的图片非常多,第一次点进这界面时速度非常慢(因为要加载绘制很多图片)出现卡顿,我们可以使用TextureCache提前异步加载纹理,等加载结束,进入到这个界面再使用这些图片速度就会非常快.对精灵缓存不清楚的看Cocos2d-X研究之v3.x精灵帧缓存 Texture2D: 纹理,即图片加载入内存后供CPU和GPU操作的贴图对象. TextureCache(纹理缓存),用于加载和管理纹理.一旦纹理加载完

Hibernate之缓存详解

hibernate中提供了两级缓存,一级缓存是Session级别的缓存,它属于事务范围的缓存,该级缓存由hibernate管理,应用程序无需干预:二级缓存是SessionFactory级别的缓存,该级缓存可以进行配置和更改,并且可以动态加载和卸载,hibernate还为查询结果提供了一个查询缓存,它依赖于二级缓存: 一,缓存的概念 缓存是位于应用程序和永久性数据存储源之间用于临时存放复制数据的内存区域,缓存可以降低应用程序之间读写永久性数据存储源的次数,从而提高应用程序的运行性能: hibern

HTML5 离线缓存详解(转)

离线缓存是html5新特性之一,简单理解就是第一次加载后将数据缓存,在没有清除缓存前提下,下一次没有网络也可以加载,用在静态数据的网页或游戏比较好用.当然,Html5新的特性都不是所有浏览器都能支持的,离线缓存也一样.反正IE9(包括)及IE9以下的浏览器目前是不支持的.如果用在移动端,应该都能支持.检测是否支持离线缓存也是比较简单的. if(window.applicationCache){ alert("支持离线缓存"); } else{ alert("不支持离线缓存&q

hibernate缓存详解

为什么要用hibernate缓存? hibernate是一个持久层框架,经常访问物理数据库.为了降低应用程序对物理数据源访问的次数,从而提高应用程序的运行性能,我们想到使用hibernate缓存机制.缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据. hibernate缓存的原理 缓存的主要作用是查询. hibernate缓存包括三大类:hibernate一级缓存.hibernate二级缓存和hibernate查询缓存. 一

Hibernate一级缓存和二级缓存详解

一.一级缓存二级缓存的概念解释 (1)一级缓存就是Session级别的缓存,一个Session做了一个查询操作,它会把这个操作的结果放在一级缓存中,如果短时间内这个 session(一定要同一个session)又做了同一个操作,那么hibernate直接从一级缓存中拿,而不会再去连数据库,取数据: (2)二级缓存就是SessionFactory级别的缓存,顾名思义,就是查询的时候会把查询结果缓存到二级缓存中,如果同一个sessionFactory 创建的某个session执行了相同的操作,hib

【转载】浏览器缓存详解:expires cache-control last-modified

最近在对CDN进行优化,对浏览器缓存深入研究了一下,记录一下,方便后来者 画了一个草图: 每个状态的详细说明如下: 1.Last-Modified 在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属性标记(HttpReponse Header)此文件在服务期端最后被修改的时间,格式类似这样: Last-Modified:Tue, 24 Feb 2009 08:01:04 GMT 客户端第二次请求此URL时,根据HTTP协议

缓存详解

一级缓存 首先做一个测试,创建一个mapper配置文件和mapper接口,我这里用了最简单的查询来演示. <mapper namespace="cn.elinzhou.mybatisTest.mapper.UserMapper"> <select id="findUsers" resultType="cn.elinzhou.mybatisTest.pojo.User"> SELECT * FROM user </se

基于Ehcache的Spring缓存详解

一 简介 缓存,通过将数据保存在缓冲区中,可以为以后的相同请求提供更快速的查询,同时可以避免方法的多次执行,从而提高应用的性能. 在企业级应用中,为了提升性能,Spring提供了一种可以在方法级别上进行缓存的缓存抽象.通过使用AOP原则,Spring对使用缓存的方法自动生成相应代理类,如果已经为提供的参数执行过该方法,那么就不必重新执行实际方法而是直接返回被缓存的结果.在基于Spring的Web应用中,为了启用缓存功能,需要使用缓存注解对待使用缓存的方法进行标记. Spring缓存仅仅提供了一种