高并发和大流量解决方案--动态页面静态化

  先来看看php在服务器的执行过程:当用户请求服务器php文件的时候,服务器将对php文件进行语法分析,其次是解析,最后才运行。当php文件有内容输出时,该内容会先经过服务器的php的缓冲区(buffer),然后再通过TCP传递到客户端。(buffer其实就是缓冲区,一个内存地址空间,主要用于存储数据区域)

       可见,如果用户直接访问静态页面的时候,服务器的响应时间一般会比访问动态文件的时间短。如果我们能把用户将要访问的动态文件先转化为静态文件即可加快用户访问页面的速度(获取网页的速度)。当然我们要注意静态化的应用场景,页面的静态化主要应用于那些页面内容不经常改动的页面。

       关于静态化,PHP的静态化分为:纯静态和伪静态。其中纯静态又分为:局部纯静态和全部纯静态。这里将的是全部纯静态。

页面静态化其中之一的方法是借助PHP自带的缓冲区OB:

下面是页面缓冲的简单实现

<?php
//可以根据 前端传递参数 COOKIE等进行缓存
$id = $_GET['id'];
//设置缓冲文件名
$cache_name = md5(__FILE__) . '-' . $id . '.html';
//失效时间
$life = 3600;
//判断文件是否存在以及是否过期
if (file_exists($cache_name) && (filectime($cache_name) > time() - $life)) {
    include $cache_name;
    exit;
}
//开启缓冲区
ob_start();
echo date('Y-m-d H:i:s');
$content = ob_get_contents();
ob_end_clean();
//写入到缓冲文件
file_put_contents($cache_name, $content);
echo $content;

除了以上方法之外,我们可以利用框架自带的一些缓冲机制来实现

转载于:https://www.cnblogs.com/xiaoliwang/p/9327053.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值