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_xmlhttp 乱码问题解决方法
Aug 07 PHP
php 将字符串按大写字母分隔成字符串数组
Apr 30 PHP
php 生成唯一id的几种解决方法
Mar 08 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
Jun 30 PHP
VB中的RasEnumConnections函数返回632错误解决方法
Jul 29 PHP
PHP闭包函数传参及使用外部变量的方法
Mar 15 PHP
Symfony2学习笔记之控制器用法详解
Mar 17 PHP
Yii2 rbac权限控制操作步骤实例教程
Apr 29 PHP
PHPstorm快捷键(分享)
Jul 17 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
Sep 30 PHP
thinkphp5 migrate数据库迁移工具
Feb 20 PHP
PHP页面静态化――纯静态与伪静态用法详解
Jun 05 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输出控制功能在简繁体转换中的应用
2006/10/09 PHP
附件名前加网站名
2008/03/23 PHP
PHP 布尔值的自增与自减的实现方法
2018/05/03 PHP
Jquery插件 easyUI属性汇总
2011/01/19 Javascript
js 第二代身份证号码的验证机制代码
2011/05/12 Javascript
Javascript获取HTML静态页面参数传递值示例
2013/08/18 Javascript
javascript中match函数的用法小结
2014/02/08 Javascript
js实现格式化金额,字符,时间的方法
2015/02/26 Javascript
JQuery删除DOM节点的方法
2015/06/11 Javascript
js中对函数设置默认参数值的3种方法
2015/10/23 Javascript
JavaScript黑洞数字之运算路线查找算法(递归算法)实例
2016/01/28 Javascript
JS页面获取 session 值,作用域和闭包学习笔记
2019/10/16 Javascript
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
vue过滤器实现日期格式化的案例分析
2020/07/02 Javascript
Vue用mixin合并重复代码的实现
2020/11/27 Vue.js
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
2020/12/30 Vue.js
python中关于日期时间处理的问答集锦
2013/03/08 Python
自己使用总结Python程序代码片段
2015/06/02 Python
python Spyder界面无法打开的解决方法
2018/04/27 Python
python使用epoll实现服务端的方法
2018/10/16 Python
python实现文件助手中查看微信撤回消息
2019/04/29 Python
使用pyplot.matshow()函数添加绘图标题
2020/06/16 Python
Python爬取微信小程序通用方法代码实例详解
2020/09/29 Python
英国时尚运动品牌的合集:The Sports Edit
2017/12/20 全球购物
贪睡宠物用品:Snoozer Pet Products
2020/02/04 全球购物
企划主管岗位职责
2013/12/12 职场文书
行政人事岗位职责
2014/03/17 职场文书
幼儿教师师德承诺书
2014/05/23 职场文书
党的群众路线教育实践活动个人整改措施材料
2014/11/04 职场文书
打架检讨书
2015/01/27 职场文书
整改通知书格式
2015/04/22 职场文书
驳回起诉裁定书
2015/05/19 职场文书
《浅水洼里的小鱼》教学反思
2016/02/16 职场文书
Python中可变和不可变对象的深入讲解
2021/08/02 Python
Window server中安装Redis的超详细教程
2021/11/17 Redis
Redis如何使用乐观锁(CAS)保证数据一致性
2022/03/25 Redis