zoukankan      html  css  js  c++  java
  • 高并发和大流量解决方案--动态页面静态化

      先来看看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;

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

  • 相关阅读:
    【HDU
    写个shell脚本依次运行每个程序半小时
    Windows10 + Visual Studio 2017环境为C++工程安装使用ZMQ
    【UVALive
    【Gym
    【最短路算法】Dijkstra+heap和SPFA的区别
    【Gym 100812C】Story of Princess (走完图所有边)
    【C++】VS2015/VS2017连接Mysql数据库教程
    博客园设置Google-code-prettify渲染代码高亮
    【QML与C++混合编程】用QVariantList传递数组类型成员
  • 原文地址:https://www.cnblogs.com/xiaoliwang/p/9327053.html
Copyright © 2011-2022 走看看