YII框架http缓存操作示例


Posted in PHP onApril 29, 2019

本文实例讲述了YII框架http缓存操作。分享给大家供大家参考,具体如下:

http禁止缓存原理

header('Expires: 0');
header('Last-Modified: '. gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cahe, must-revalidate');
//ie专用
header('Cache-Control: post-chedk=0, pre-check=0', false);
//for HTTP/1.0
header('Pragma: no-cache');

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 extends Controller
{
  public function behaviors()//先于action执行,可以用来实现页面缓存
  {
    return [
      [
        'class'=>'yii\filters\HttpCache',//整个页面缓存
        'lastModified'=>function(){
          return filemtime('hw.txt');
          //return 22221231231231;//可以在每次修改数据时,记入缓存,从缓存读取
        },
        'etagSeed'=>function(){
          $fp = fopen('hw.txt','r');//hw.txt在web的根目录下
          $title = fgets($fp);//读取第一行
          fclose($fp);
          return $title;
          //return 'etagseed2123123';//内容
        },
      ]
    ];
  }
  public function actionIndex()
  {
    $content = file_get_contents('hw.txt');
    return $this->renderPartial("index",['new'=>$content]);
  }
}

httpcache/index.php

<?php
/**
 * Created by PhpStorm.
 * Date: 2016/5/25
 * Time: 20:19
 */
?>
<div>
  <div>这是http缓存页面</div>
  <p><?= $new;?></p>
</div>

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php教程 插件机制在PHP中实现方案
Nov 02 PHP
PHP编码转换函数 自动转换字符集支持数组转换
Dec 16 PHP
深入探讨<br />和 \r\n两者有什么区别??
Jun 05 PHP
解析php安全性问题中的:Null 字符问题
Jun 21 PHP
php加密算法之实现可逆加密算法和解密分享
Jan 21 PHP
PHP生成短网址的3种方法代码实例
Jul 08 PHP
PHP 5.3新增魔术方法__invoke概述
Jul 23 PHP
php导入excel文件到mysql数据库的方法
Jan 14 PHP
Symfony2实现从数据库获取数据的方法小结
Mar 18 PHP
Yii2 GridView实现列表页直接修改数据的方法
May 16 PHP
PHP从数组中删除元素的四种方法实例
May 12 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
Aug 28 PHP
PHP常见的几种攻击方式实例小结
Apr 29 #PHP
php-fpm重启导致的程序执行中断问题详解
Apr 29 #PHP
详解提高使用Java反射的效率方法
Apr 29 #PHP
Thinkphp整合阿里云OSS图片上传实例代码
Apr 28 #PHP
详解php中生成标准uuid(guid)的方法
Apr 28 #PHP
PHP写API输出的时用echo的原因详解
Apr 28 #PHP
PHP+mysql防止SQL注入的方法小结
Apr 27 #PHP
You might like
人族 TERRAN 概述
2020/03/14 星际争霸
php更改目录及子目录下所有的文件后缀扩展名的代码
2010/10/12 PHP
PHP中空字符串介绍0、null、empty和false之间的关系
2012/09/25 PHP
PHP文件操作方法汇总
2015/07/01 PHP
PHP PDOStatement::nextRowset讲解
2019/02/01 PHP
Prototype使用指南之ajax
2007/01/10 Javascript
jQuery 解析xml文件
2009/08/09 Javascript
在vs2010中调试javascript代码方法
2011/02/11 Javascript
Jqgrid设置全选(选择)及获取选择行的值示例代码
2013/12/28 Javascript
get(0).tagName获得作用标签示例代码
2014/10/08 Javascript
js打造数组转json函数
2015/01/14 Javascript
JS随机洗牌算法之数组随机排序
2016/03/23 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
微信支付 JS API支付接口详解
2016/07/11 Javascript
微信小程序访问node.js接口服务器搭建教程
2017/04/25 Javascript
基于vue实现swipe轮播组件实例代码
2017/05/24 Javascript
vue 请求后台数据的实例代码
2017/06/22 Javascript
一秒学会微信小程序制作table表格
2019/02/14 Javascript
JS使用队列对数组排列,基数排序算法示例
2019/03/02 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
2019/06/10 jQuery
layui 阻止图片上传的实例(before方法)
2019/09/26 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
TensorFlow中权重的随机初始化的方法
2018/02/11 Python
python opencv实现切变换 不裁减图片
2018/07/26 Python
浅谈Python中的bs4基础
2018/10/21 Python
详解python Todo清单实战
2018/11/01 Python
python中前缀运算符 *和 **的用法示例详解
2020/05/28 Python
html+js 实现markdown编辑器效果
2019/10/23 HTML / CSS
6号汽车旅馆预订:Motel 6
2018/02/11 全球购物
北京华建集团SQL面试题
2014/06/03 面试题
消防安全检查制度
2014/02/04 职场文书
好人好事事迹材料
2014/02/12 职场文书
年级组长自我鉴定
2014/02/22 职场文书
《分一分》教学反思
2014/04/13 职场文书
实习计划书范文
2015/01/16 职场文书
PostgreSQL数据库创建并使用视图以及子查询
2022/04/11 PostgreSQL