YII 页面缓存

【页面缓存】

1. 能否够通过“片段缓存”实现

答:这样是不能够,由于布局文件还没有被缓存

2. 我们能否够再布局进行页面缓存

答:理论上不能够,视图先载入,布局后载入 通过时间戳能够证明

用户訪问控制实现页面缓存

Filters

accessControl

accessRules

<?php
/**
 * 商品控制器
 */
class GoodsController extends Controller {
    /*
     * 通过用户訪问控制过滤实现页面缓存
     * 过滤器:
     *  accessControl 是方法过滤器
     *  array()       是类过滤器
     */
    function filters(){
        return array(
            //'accessControl',  方法过滤器
            //类过滤器 实现页面总体缓存 COutputCache.php
            //仅仅针对detail进行页面缓存
            array(
                'system.web.widgets.COutputCache + detail',
                'duration'=>1800,
                'varyByParam'=>array('id'),
            ),
        );
    }
时间: 2024-10-10 18:05:27

YII 页面缓存的相关文章

YII页面缓存

IndexController.php namespace frontend\controllers; use yii; use yii\web\Controller; class IndexController extends Controller { public function behaviors()//先于action执行,可以用来实现页面缓存 { return [ [ 'class'=>'yii\filters\PageCache',//整个页面缓存 'duration'=>10,

Yii的缓存机制之页面缓存

页面缓存是不能通过片段缓存来实现的,因为布局和内容不能同时缓存.只能通过过滤器来生成缓存. 实现方法: 在控制器里使用过滤器来实现 function filters (){ return array( array( 'system.web.widgets.COutputCache + detail', //只针对detail有效 'duration' => 3600, //缓存时间 'varyByParam' => array('id'), //缓存依赖(通过不同的id实现不同的缓存) ),

YII框架——页面缓存

首先,要知道页面缓存是在什么时候使用的.一般是在所有操作之前缓存文件. yii中有个behaviors()方法,在控制器的所有方法之前执行.所以一般在这个方法中缓存页面. public function behaviors() { return[ [ 'class'=>'yii\filters\PageCache', 'duration'=>1000, 'dependency'=>[ 'class'=>'yii\caching\FileDependency', 'fileName'

yii学习-缓存

一.前置工作 redis服务安装 下载redis客户端(RedisDesktopManager) phpredis扩展安装 下载yii基本应用模板 安装Yii2的redis扩展 1)安装redis服务 wget https://github.com/antirez/redis/archive/3.2.3.tar.gz tar zxf redis-3.2.3.tar.gz cd redis-3.2.3 make && make install 执行初始化脚本: cd utils ./inst

Yii的缓存机制之片段缓存

一.首先在main.php配置缓存组件 在components里面添加cache项.代码如下: // application components 'components'=>array( 'user'=>array( // enable cookie-based authentication 'allowAutoLogin'=>true, ), 'db'=>array( 'connectionString' => 'mysql:host=localhost;dbname=y

YII http缓存

HttpcacheController.php 首先判断的是客户端lastModified,如果最后更新时间没有变化,就不会更新缓存,然后再判断etagSeed <?php /** * Created by PhpStorm. * Date: 2016/5/25 * Time: 20:17 * http 缓存 */ namespace frontend\controllers; use yii; use yii\web\Controller; class HttpcacheController

Yii的缓存机制之动态缓存

当整个页面被缓存,但只有小部分区域需要根据不同的条件设置不同的信息.(例如商品的详细页面的缓存中用户名是动态的)这里就需要设置动态缓存. 首先在被缓存的模板中使用renderDynamic进行动态渲染.使用如下 <?php echo $this->renderDynamic('show_name');//动态渲染,参数为控制器中的普通方法?> 控制器中定义这个方法(因为大部分控制器都需要用到这个方法,所以最好将这个方法放到控制器的父类中即Contrallor中) /* * 动态缓存的回调

yii框架缓存知识总结(转载)

缓存是用于提升网站性能的一种即简单又有效的途径.稍微有点规模的网站都会通过存储相对静态的数据至缓存以备所需,这样我们可以省去从数据库查询然后生成这些数据的时间,通过减轻数据库的压力从而提升网站的性能. Yii作为一个强大的php开源框架,再缓存这块,YII对各种流行的缓存都提供了接口,我们可以根据实际的需要使用不同的缓存. yii的缓存相关组件存放在yii/framework/caching的目录内,通过查看该目录,我们可以知道yii所支持的都有哪些缓存.下面我们对相关文件做一些简单的介绍: C

关于yii的缓存的学习(学习自慕课网---与《YII框架》不得不说的的故事—高效篇)

1.类的延时加载和表的映射 第一张截图主要是实现了类的分别调用,不用再开头把所有的文件都加载了.这样放在if的语句里面,就能加载用到的类 第二张图是实现了类的延时加载,主要是使用了spl_autoload_register 的函数只有当程序新建一个类的的时候,如果系统判断他不存在的话,就会通过那个函数去加载一次.yii也是使用的这个思想. 第三第四张图,是yii使用类的延时加载的方式,在yii的入口文件index.php那里,加载yii.php文件,然后yii.php文件里面也是使用了spl_a

YII 动态缓存

我们可以缓存整个页面,但是只有一个小的区域,会根据不同的条件显示不同的信息,这个小的区域我们需要设置动态缓存. $this -> beginCache() 中间有区域需要动态缓存 回调函数:就是控制器里边的普通方法 $this -> renderDynamic(回调函数); $this -> endCache() 如果是在布局中使用,最好把回调方法放入父类Controllerl里面 总结: 缓存 1. main.php配置缓存组件cache 2. 缓存类型:片段缓存.页面缓存.数据缓存.