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 向访客和爬虫显示不同的内容
Nov 09 PHP
php5.3 废弃函数小结
May 16 PHP
深入PHP中的HashTable结构详解
Jun 13 PHP
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
Jul 01 PHP
PHP抓屏函数实现屏幕快照代码分享
Jan 02 PHP
9条PHP编程小知识及易犯的小错误
Jan 22 PHP
PHP递归调用数组值并用其执行指定函数的方法
Apr 01 PHP
浅谈PHP eval()函数定义和用法
Jun 21 PHP
Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)
Feb 07 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
Mar 14 PHP
浅析PHP类的反射来实现依赖注入过程
Feb 06 PHP
Laravel获取所有的数据库表及结构的方法
Oct 10 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
PHP 最大运行时间 max_execution_time修改方法
2010/03/08 PHP
Android App中DrawerLayout抽屉效果的菜单编写实例
2016/03/21 PHP
利用php-cli和任务计划实现刷新token功能的方法
2017/05/03 PHP
Yii2框架自定义类统一处理url操作示例
2019/05/25 PHP
javascript据option的value值快速设定初始的selected选项
2007/08/13 Javascript
让 JavaScript 轻松支持函数重载 (Part 2 - 实现)
2009/08/04 Javascript
IE的fireEvent方法概述及应用
2013/02/22 Javascript
js 判断计算字符串长度/判断空的简单方法
2013/08/05 Javascript
解决jquery中动态新增的元素节点无法触发事件问题的两种方法
2015/10/30 Javascript
AngularJS 入门教程之HTML DOM实例详解
2016/07/28 Javascript
JavaScript DOM节点操作实例小结(新建,删除HTML元素)
2017/01/19 Javascript
浅谈react.js 之 批量添加与删除功能
2017/04/17 Javascript
angular 基于ng-messages的表单验证实例
2017/05/04 Javascript
JavaScript表单即时验证 验证不成功不能提交
2017/08/31 Javascript
详解webpack-dev-server的简单使用
2018/04/02 Javascript
Vue三层嵌套路由的示例代码
2018/05/05 Javascript
从vue源码解析Vue.set()和this.$set()
2018/08/30 Javascript
详解关于html,css,js三者的加载顺序问题
2019/04/10 Javascript
vue组件三大核心概念图文详解
2019/05/30 Javascript
基于layui的table插件进行复选框联动功能的实现方法
2019/09/19 Javascript
Vue中fragment.js使用方法小结
2020/02/17 Javascript
[02:57]2014DOTA2国际邀请赛 选手辛苦解说更辛苦
2014/07/10 DOTA
遗传算法之Python实现代码
2017/10/10 Python
linux环境中没有网络怎么下载python
2019/07/07 Python
Python封装成可带参数的EXE安装包实例
2019/08/24 Python
Python 类的私有属性和私有方法实例分析
2019/09/29 Python
python实现引用其他路径包里面的模块
2020/03/09 Python
python 基于pygame实现俄罗斯方块
2021/03/02 Python
AmazeUI底部导航栏与分享按钮的示例代码
2020/08/18 HTML / CSS
澳大利亚便宜的家庭购物网站:CrazySales
2018/02/06 全球购物
舞会礼服和舞会鞋:PromGirl
2019/04/22 全球购物
教师推荐信范文
2013/11/24 职场文书
正规的求职信范文分享
2013/12/11 职场文书
端午节活动策划方案
2014/03/09 职场文书
节水倡议书范文
2014/04/15 职场文书
离婚协议书范本
2015/01/26 职场文书