今天来说说PHP页面的静态缓存。

  根据个人理解,由于客户端重复的请求某个页面,导致该页面短时间内被重复请求相同的数据,导致给服务端一定的压力,同时用户访问速度也会变慢。此时如果把这个页面缓存起来,客户端请求这个缓存页面速度就很快,都不用查询数据库的。并不是每个页面都适合做缓存,页面要保证短时间内请求次数很大,同时短时间内数据变化不大。我们只要给缓存一个过期时间就可以达到更换数据的目的。

  1. 建立一个目录专门存放缓存文件

  

  2. 在index.php

<?php
/**
* PHP文件缓存示例
* @Date: 2017-12-07 16:06:17
* @Last Modified time: 2017-12-07 16:27:26
*/ $file_name = './cache/test.php'; // 缓存文件
$expire_time = 10; // 过期时间(秒) if(!file_exists($file_name) || (filemtime($file_name)+$expire_time)<time()) // 文件修改时间+过期时间 如果小于当前时间,则去请求新的数据
{
//缓存页面代码
ob_start();
//用来获取页面缓存中的内容
$content = ob_get_contents(); echo '我是正常的内容,这里可以写页面,请求数据库的信息'; //将获取到的内容存放到缓存文件
file_put_contents($file_name,$content); //清掉内存缓存
ob_end_flush(); echo '我是缓存之外的内容'; //测试是否调用了缓存文件,缓存文件不输出这句话 }
else
{
echo '你现在看到的是缓存文件<br />';
include($file_name); //如果存在,调用缓存文件
}

10s过后就会请求新的数据了

以上就是PHP页面静态缓存的全部内容了

PHP 静态缓存的更多相关文章

  1. php静态缓存简单制作

    制作缓存的目的是为了让我们的页面运行更加快速,减少读取数据库内容的次数,给用户更好的体验,为此我们可以使自己的程序做一下缓存,并且设置一个缓存过期的时间,来保证与数据库的一致,当然并不是所有的程序都适 ...

  2. ThinkPHP 3.2.3 数据缓存与静态缓存

    ThinkPHP 3.2.3 中手册中数据缓存的地址是:http://www.kancloud.cn/manual/thinkphp/1835 静态缓存的地址是:http://www.kancloud ...

  3. APP 接口开发及读取静态缓存

    <?php /** * Description: App 接口 * Create date:2015-10-19 13:36 * Author: zhaoyingnan **/ class Re ...

  4. PHP 开发 APP 接口 学习笔记与总结 - 静态缓存

    存储静态缓存即把缓存写入文件. file.php <?php class Cache{ //静态缓存文件后缀名 const EXT = 'txt'; //定义缓存文件存放路径 private $ ...

  5. ThinkPHP第十九天(Ueditor高亮插件、扩展函数载入load、静态缓存)

    1.使用Ueditor编辑器,插入代码后,显示的时候高亮显示,需要调用Ueditor中的第三方插件third-party中的SyntaxHighlighter 调用方法: 引入CSS和JS文件,并调用 ...

  6. thinkphp的静态缓存,数据缓存,快速缓存,查询缓存

    // 静态缓存 // 'HTML_PATH' 缓存目录,这是个常量不是配置项,在入口文件中定义 // 'HTML_CACHE_ON'     =>    true, // 开启静态缓存 'HTM ...

  7. Thinkphp路由配置和静态缓存规则【原创】

    ThinkPHP框架对URL有一定的规范,所以如果你希望定制你的URL格式的话,就需要好好了解下内置的路由功能了,它能让你的URL变得更简洁和有文化. 首先我们在Common/config.php设置 ...

  8. Thinkphp 缓存和静态缓存局部缓存设置

    1.S方法缓存设置 if(!$rows = S('indexBlog')){ //*$rows = S('indexBlog') $rows = D('blog')->select(); S(' ...

  9. thinkphp3.2局部不缓存的静态缓存

    在thinkphp中,对于访问量大的网站可以用静态缓存来越过数据库瓶颈来提高访问速度,但有时候并不是整个页面都要缓存的,如登录的用户名部分,那么如何实现局部不缓存呢? 其实有多种方法,但对于Think ...

随机推荐

  1. abapGit分支策略

    各位ABAP公民们.特别是使用abapGit的各位,你们好. 我的团队和我将向大家分享我公司内引入abapGit后产生的某些开发问题.我所在的公司是一家创作SAP第三方软件的公司,目前主要使用ABAP ...

  2. XML之外部DTD和内部DTD

    DTD(Document Type Definition):文档类型定义,可以定义合法的XML文档结构,它使用一系列合法元素来定义文档的结构.DTD分为内部DTD和外部DTD,所谓内部DTD是指该DT ...

  3. AngularJS学习篇(四)

    AngularJS ng-model 指令 ng-model 指令用于绑定应用程序数据到 HTML 控制器(input, select, textarea)的值. <!DOCTYPE html& ...

  4. grunt concat针对有依赖文件的js脚本的合并

    grunt concat针对有依赖文件的js脚本的合并: 在一个入口文件index.js里,有很多依赖文件,主要分两类,一类是和主文件同目录,另一类是其他目录下的js(cmd.非cmd的js文件,一般 ...

  5. 性能优化之-------少用iframe

     1.DOM开销高 使用iframe的开销是很高的,在主页面中加载同等数量的div和iframe(标签内容都是空),iframe的耗时会比div的高1~2个数量级. 2.阻塞onload事件 在典型方 ...

  6. jQuery选择器(属性过滤选择器)第六节

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  7. 从成本角度看Java微服务

    近年来,微服务因其良好的灵活性和伸缩性等特点备受追捧,很多公司开始采用微服务架构或将已有的单体系统改造成微服务.IBM也于近日开源了轻量级Java微服务应用服务器 Open Liberty .但是采用 ...

  8. Pandas常用函数入门

    一.Pandas Python Data Analysis Library或Pandas是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的.Pandas纳入了大量库和一些标准的数据模型, ...

  9. mysql 读写分离

    常见的读写分离方案:1)Amoeba读写分离2)MySQL-Proxy读写分离3)基于程序读写分离(效率很高,实施难度大,开发改代码) 2)原理 web 访问数据库,通过proxy4040端口作为转发 ...

  10. HTML知识速递

    1.html的定义 超文本标记语言(Hypertext Markup Language,HTML)通过标签语言来标记要显示的网页中的各个部分.一套规则,浏览器认识的规则 浏览器按顺序渲染网页文件,然后 ...