zoukankan      html  css  js  c++  java
  • 页面静态化

    Edit

    页面静态化

    简介

    页面静态化,就是生成静态的html页面,为什么要生成静态化的html页面?当我们点击一个问题,进入到问题详情页面的时候:


    在问题详情页面需要连接上述4张表,才能把所有需要显示的内容都显示出来每次连接4张表来查询,效率是非常低的,所以我们使用页面静态化实现:

    • 如何实现:将来发布问题、回复问题之后,先查询该问题相关的信息,并生成一个纯静态的html页面,这样其他用户请求的时候,不需要再次连接数据库
    • 应用场景
      数据不是频繁改变的,都可以使用页面静态化实现:
      知乎的问题列表、新浪新闻页面等,就可以生成静态化的html页面,让用户访问,但是有一些项目:股票、天气预报、价格等实时变化的数据,不适合使用页面静态化

    页面静态化与缓存的区别

    • 缓存分析


    上面的流程代码节省了数据库的压力,但是php的压力依然存在,PHP里面要实例化smarty、判断是否有缓存、读取缓存等

    • 画图分析页面静态化的流程:


    那么如何生成静态的html页面呢?通过ob缓冲技术来实现的

    ob缓冲介绍

     

    开启ob缓冲

    默认ob缓冲器开启的,为了保险起见,我们检查一下:

    ob缓冲相关函数

    ob_start():开启缓冲区域,每ob_start()一次,就会在PHP服务器端开启一块缓冲区域,开启之后,服务器向客户端响应的内容就会优先输出到缓冲区域

    ob_clean():清除缓冲区域

    ob_get_contents():获得缓冲区域的内容

    ob_get_length():获得缓冲区域内容长度

    ob_flush():刷出,将缓冲区域的内容直接输出

    ob_get_flush():获得刷出的内容,并没有直接输出,而是保存起来

    ob_clean():清除缓冲区域的内容

    ob_get_clean():先获得缓冲区域的内容,然后再清空缓冲区域

    ob_end_flush():先刷出缓冲区域的内容,再关闭缓冲

    ob_end_clean():先清空缓冲区域的内容,在关闭

    ob缓冲处理器

    简介

    ob缓冲处理器: 指的是当我们将缓冲区域的内容输出到客户端的时候,使用的处理器对数据进行处理,通常我们会使用ob_gzhandler处理器对输出的内容进行压缩处理

    演示一个没有使用ob缓冲处理器处理的效果


    在演示一下使用ob_gzhandler处理对输出的数据进行压缩处理之后的效果

    ob多缓冲

    简介

    我们可以多次调用ob_start(),每次调用ob_start()都会重新开启一块缓冲区域
    这就称之为多缓冲
    而且我们对缓冲区域的操作,操作的是离我们开启的缓冲最近的那一个区域

    举例演示:

    ob缓冲实现页面静态化


    只需要将goods_template.html执行的结果(上图所示),保存到一个静态的html(goods_list.html)文件中
    代码实现

    1.<?php
    2.require_once 'DAOPDO.class.php';
    3.$option = array(
    4. 'host' => '127.0.0.1',
    5. 'dbname' => 'php_9',
    6. 'user' => 'root',
    7. 'pwd' => 'root',
    8. 'port' => 3306,
    9. 'charset' => 'utf8'
    10.);
    11.
    12.$dao = DAOPDO::getSingleton($option);
    13.
    14.$sql = "SELECT * FROM tn_goods";
    15.$goods = $dao -> fetchAll($sql);
    16.
    17.//1. 先开启缓冲,后面的所有输出都会先输出到缓冲里面
    18.ob_start();
    19.require_once 'goods_template.html';
    20.//2. 获取缓冲区域里面的内容
    21.$result = ob_get_contents();
    22.ob_end_clean();
    23.
    24.//3. 写入到静态的html文件中
    25.if(file_put_contents('goods_list.html',$result)){
    26. echo '页面静态化生成成功';
    27.}
    %23%20%u9875%u9762%u9759%u6001%u5316%0A%5BTOC%5D%0A%23%23%20%u7B80%u4ECB%0A%u9875%u9762%u9759%u6001%u5316%uFF0C%u5C31%u662F%u751F%u6210%u9759%u6001%u7684html%u9875%u9762%uFF0C%u4E3A%u4EC0%u4E48%u8981%u751F%u6210%u9759%u6001%u5316%u7684html%u9875%u9762%uFF1F%u5F53%u6211%u4EEC%u70B9%u51FB%u4E00%u4E2A%u95EE%u9898%uFF0C%u8FDB%u5165%u5230%u95EE%u9898%u8BE6%u60C5%u9875%u9762%u7684%u65F6%u5019%uFF1A%0A%21%5BAlt%20text%5D%28./1499586812380.png%29%0A%21%5BAlt%20text%5D%28./1499586827863.png%29%0A%u5728%u95EE%u9898%u8BE6%u60C5%u9875%u9762%u9700%u8981%u8FDE%u63A5%u4E0A%u8FF04%u5F20%u8868%uFF0C%u624D%u80FD%u628A%u6240%u6709%u9700%u8981%u663E%u793A%u7684%u5185%u5BB9%u90FD%u663E%u793A%u51FA%u6765%u6BCF%u6B21%u8FDE%u63A54%u5F20%u8868%u6765%u67E5%u8BE2%uFF0C%u6548%u7387%u662F%u975E%u5E38%u4F4E%u7684%uFF0C%u6240%u4EE5%u6211%u4EEC%u4F7F%u7528%u9875%u9762%u9759%u6001%u5316%u5B9E%u73B0%uFF1A%0A-%20**%u5982%u4F55%u5B9E%u73B0**%uFF1A%u5C06%u6765%u53D1%u5E03%u95EE%u9898%u3001%u56DE%u590D%u95EE%u9898%u4E4B%u540E%uFF0C%u5148%u67E5%u8BE2%u8BE5%u95EE%u9898%u76F8%u5173%u7684%u4FE1%u606F%uFF0C%u5E76%u751F%u6210%u4E00%u4E2A%u7EAF%u9759%u6001%u7684html%u9875%u9762%uFF0C%u8FD9%u6837%u5176%u4ED6%u7528%u6237%u8BF7%u6C42%u7684%u65F6%u5019%uFF0C%u4E0D%u9700%u8981%u518D%u6B21%u8FDE%u63A5%u6570%u636E%u5E93%0A-%20**%u5E94%u7528%u573A%u666F**%0A%u6570%u636E%u4E0D%u662F%u9891%u7E41%u6539%u53D8%u7684%uFF0C%u90FD%u53EF%u4EE5%u4F7F%u7528%u9875%u9762%u9759%u6001%u5316%u5B9E%u73B0%uFF1A%0A%u77E5%u4E4E%u7684%u95EE%u9898%u5217%u8868%u3001%u65B0%u6D6A%u65B0%u95FB%u9875%u9762%u7B49%uFF0C%u5C31%u53EF%u4EE5%u751F%u6210%u9759%u6001%u5316%u7684html%u9875%u9762%uFF0C%u8BA9%u7528%u6237%u8BBF%u95EE%uFF0C%u4F46%u662F%u6709%u4E00%u4E9B%u9879%u76EE%uFF1A%u80A1%u7968%u3001%u5929%u6C14%u9884%u62A5%u3001%u4EF7%u683C%u7B49%u5B9E%u65F6%u53D8%u5316%u7684%u6570%u636E%uFF0C%u4E0D%u9002%u5408%u4F7F%u7528%u9875%u9762%u9759%u6001%u5316%0A%23%23%20%u9875%u9762%u9759%u6001%u5316%u4E0E%u7F13%u5B58%u7684%u533A%u522B%0A-%20**%u7F13%u5B58%u5206%u6790**%0A%21%5BAlt%20text%5D%28./1499588751306.png%29%0A%u4E0A%u9762%u7684%u6D41%u7A0B%u4EE3%u7801%u8282%u7701%u4E86%u6570%u636E%u5E93%u7684%u538B%u529B%uFF0C%u4F46%u662Fphp%u7684%u538B%u529B%u4F9D%u7136%u5B58%u5728%uFF0CPHP%u91CC%u9762%u8981%u5B9E%u4F8B%u5316smarty%u3001%u5224%u65AD%u662F%u5426%u6709%u7F13%u5B58%u3001%u8BFB%u53D6%u7F13%u5B58%u7B49%0A-%20**%u753B%u56FE%u5206%u6790%u9875%u9762%u9759%u6001%u5316%u7684%u6D41%u7A0B%uFF1A**%0A%21%5BAlt%20text%5D%28./1499588723048.png%29%0A%u90A3%u4E48%u5982%u4F55%u751F%u6210%u9759%u6001%u7684html%u9875%u9762%u5462%uFF1F%u901A%u8FC7%60ob%u7F13%u51B2%u6280%u672F%60%u6765%u5B9E%u73B0%u7684%0A%23%23ob%u7F13%u51B2%u4ECB%u7ECD%0A@%28ob%uFF0Coutput%20buffering%uFF0C%u8F93%u51FA%u7F13%u51B2%uFF0C%u662FPHP%u63D0%u4F9B%u7684%u5F53%u670D%u52A1%u5668%u5411%u5BA2%u6237%u7AEF%u54CD%u5E94%u6570%u636E%u65F6%u7684%u4E34%u65F6%u5B58%u50A8%u7A7A%u95F4%uFF0C%u5148%u5C06%u6570%u636E%u518D%u7F13%u51B2%u533A%u57DF%u4E34%u65F6%u5B58%u653E%u4E00%u4E0B%uFF0C%u7136%u540E%u5728%u8F93%u51FA%u7ED9%u6D4F%u89C8%u5668%29%0A%21%5BAlt%20text%5D%28./1499589039513.png%29%0A%23%23%u5F00%u542Fob%u7F13%u51B2%0A%u9ED8%u8BA4ob%u7F13%u51B2%u5668%u5F00%u542F%u7684%uFF0C%u4E3A%u4E86%u4FDD%u9669%u8D77%u89C1%uFF0C%u6211%u4EEC%u68C0%u67E5%u4E00%u4E0B%uFF1A%0A%21%5BAlt%20text%5D%28./1499589077595.png%29%0A%23%23ob%u7F13%u51B2%u76F8%u5173%u51FD%u6570%0A%3E**ob_start%28%29%uFF1A**%u5F00%u542F%u7F13%u51B2%u533A%u57DF%uFF0C%u6BCFob_start%28%29%u4E00%u6B21%uFF0C%u5C31%u4F1A%u5728PHP%u670D%u52A1%u5668%u7AEF%u5F00%u542F%u4E00%u5757%u7F13%u51B2%u533A%u57DF%uFF0C%u5F00%u542F%u4E4B%u540E%uFF0C%u670D%u52A1%u5668%u5411%u5BA2%u6237%u7AEF%u54CD%u5E94%u7684%u5185%u5BB9%u5C31%u4F1A%u4F18%u5148%u8F93%u51FA%u5230%u7F13%u51B2%u533A%u57DF%0A%3E%0A%3E**ob_clean%28%29%uFF1A**%u6E05%u9664%u7F13%u51B2%u533A%u57DF%0A%3E%0A%3E**ob_get_contents%28%29%uFF1A**%u83B7%u5F97%u7F13%u51B2%u533A%u57DF%u7684%u5185%u5BB9%0A%3E%0A%3E**ob_get_length%28%29%uFF1A**%u83B7%u5F97%u7F13%u51B2%u533A%u57DF%u5185%u5BB9%u957F%u5EA6%0A%3E%0A%3E**ob_flush%28%29%uFF1A**%u5237%u51FA%uFF0C%u5C06%u7F13%u51B2%u533A%u57DF%u7684%u5185%u5BB9%u76F4%u63A5%u8F93%u51FA%0A%3E%0A%3E**ob_get_flush%28%29%uFF1A**%u83B7%u5F97%u5237%u51FA%u7684%u5185%u5BB9%uFF0C%u5E76%u6CA1%u6709%u76F4%u63A5%u8F93%u51FA%uFF0C%u800C%u662F%u4FDD%u5B58%u8D77%u6765%0A%3E%0A%3E**ob_clean%28%29%uFF1A**%u6E05%u9664%u7F13%u51B2%u533A%u57DF%u7684%u5185%u5BB9%0A%3E%0A%3E**ob_get_clean%28%29%uFF1A**%u5148%u83B7%u5F97%u7F13%u51B2%u533A%u57DF%u7684%u5185%u5BB9%uFF0C%u7136%u540E%u518D%u6E05%u7A7A%u7F13%u51B2%u533A%u57DF%0A%3E%0A%3E**ob_end_flush%28%29%uFF1A**%u5148%u5237%u51FA%u7F13%u51B2%u533A%u57DF%u7684%u5185%u5BB9%uFF0C%u518D%u5173%u95ED%u7F13%u51B2%0A%3E%0A%3E**ob_end_clean%28%29%uFF1A**%u5148%u6E05%u7A7A%u7F13%u51B2%u533A%u57DF%u7684%u5185%u5BB9%uFF0C%u5728%u5173%u95ED%0A%3E%0A%23%23ob%u7F13%u51B2%u5904%u7406%u5668%0A%23%23%23%u7B80%u4ECB%0A%3E**ob%u7F13%u51B2%u5904%u7406%u5668%3A**%20%20%20%20%u6307%u7684%u662F%u5F53%u6211%u4EEC%u5C06%u7F13%u51B2%u533A%u57DF%u7684%u5185%u5BB9%u8F93%u51FA%u5230%u5BA2%u6237%u7AEF%u7684%u65F6%u5019%uFF0C%u4F7F%u7528%u7684%u5904%u7406%u5668%u5BF9%u6570%u636E%u8FDB%u884C%u5904%u7406%uFF0C%u901A%u5E38%u6211%u4EEC%u4F1A%u4F7F%u7528ob_gzhandler%u5904%u7406%u5668%u5BF9%u8F93%u51FA%u7684%u5185%u5BB9%u8FDB%u884C%u538B%u7F29%u5904%u7406%0A%0A**%u6F14%u793A%u4E00%u4E2A%u6CA1%u6709%u4F7F%u7528ob%u7F13%u51B2%u5904%u7406%u5668%u5904%u7406%u7684%u6548%u679C**%0A%21%5BAlt%20text%5D%28./1499589968993.png%29%0A**%u5728%u6F14%u793A%u4E00%u4E0B%u4F7F%u7528ob_gzhandler%u5904%u7406%u5BF9%u8F93%u51FA%u7684%u6570%u636E%u8FDB%u884C%u538B%u7F29%u5904%u7406%u4E4B%u540E%u7684%u6548%u679C**%0A%21%5BAlt%20text%5D%28./1499590001103.png%29%0A%23%23ob%u591A%u7F13%u51B2%0A%23%23%23%u7B80%u4ECB%0A%3E%u6211%u4EEC%u53EF%u4EE5%u591A%u6B21%u8C03%u7528ob_start%28%29%uFF0C%u6BCF%u6B21%u8C03%u7528ob_start%28%29%u90FD%u4F1A%u91CD%u65B0%u5F00%u542F%u4E00%u5757%u7F13%u51B2%u533A%u57DF%0A%u8FD9%u5C31%u79F0%u4E4B%u4E3A%u591A%u7F13%u51B2%0A%u800C%u4E14%u6211%u4EEC%u5BF9%u7F13%u51B2%u533A%u57DF%u7684%u64CD%u4F5C%uFF0C%u64CD%u4F5C%u7684%u662F%u79BB%u6211%u4EEC%u5F00%u542F%u7684%u7F13%u51B2%u6700%u8FD1%u7684%u90A3%u4E00%u4E2A%u533A%u57DF%0A%0A**%u4E3E%u4F8B%u6F14%u793A%uFF1A**%0A%21%5BAlt%20text%5D%28./1499590128175.png%29%0A%23%23ob%u7F13%u51B2%u5B9E%u73B0%u9875%u9762%u9759%u6001%u5316%0A%21%5BAlt%20text%5D%28./1499590487841.png%29%0A%21%5BAlt%20text%5D%28./1499590696185.png%29%0A**%u53EA%u9700%u8981%u5C06%60goods_template.html%60%u6267%u884C%u7684%u7ED3%u679C%28%u4E0A%u56FE%u6240%u793A%29%2C%u4FDD%u5B58%u5230%u4E00%u4E2A%u9759%u6001%u7684html%28%60goods_list.html%60%29%u6587%u4EF6%u4E2D**%0A**%60%u4EE3%u7801%u5B9E%u73B0%60**%0A%60%60%60%20python%0A%3C%3Fphp%0Arequire_once%20%27DAOPDO.class.php%27%3B%0A%24option%20%3D%20array%28%0A%20%20%20%20%27host%27%20%20%20%20%20%20%3D%3E%20%20%27127.0.0.1%27%2C%0A%20%20%20%20%27dbname%27%20%20%20%20%3D%3E%20%20%27php_9%27%2C%0A%20%20%20%20%27user%27%20%20%20%20%20%20%3D%3E%20%20%27root%27%2C%0A%20%20%20%20%27pwd%27%20%20%20%20%20%20%20%3D%3E%20%20%27root%27%2C%0A%20%20%20%20%27port%27%20%20%20%20%20%20%3D%3E%20%203306%2C%0A%20%20%20%20%27charset%27%20%20%20%3D%3E%20%20%27utf8%27%0A%29%3B%0A%0A%24dao%20%3D%20DAOPDO%3A%3AgetSingleton%28%24option%29%3B%0A%0A%24sql%20%3D%20%22SELECT%20*%20FROM%20tn_goods%22%3B%0A%24goods%20%3D%20%24dao%20-%3E%20fetchAll%28%24sql%29%3B%0A%0A//1.%20%u5148%u5F00%u542F%u7F13%u51B2%uFF0C%u540E%u9762%u7684%u6240%u6709%u8F93%u51FA%u90FD%u4F1A%u5148%u8F93%u51FA%u5230%u7F13%u51B2%u91CC%u9762%0Aob_start%28%29%3B%0Arequire_once%20%27goods_template.html%27%3B%0A//2.%20%u83B7%u53D6%u7F13%u51B2%u533A%u57DF%u91CC%u9762%u7684%u5185%u5BB9%0A%24result%20%3D%20ob_get_contents%28%29%3B%0Aob_end_clean%28%29%3B%0A%0A//3.%20%u5199%u5165%u5230%u9759%u6001%u7684html%u6587%u4EF6%u4E2D%0Aif%28file_put_contents%28%27goods_list.html%27%2C%24result%29%29%7B%0A%20%20%20%20echo%20%27%u9875%u9762%u9759%u6001%u5316%u751F%u6210%u6210%u529F%27%3B%0A%7D%0A%60%60%60
  • 相关阅读:
    【转】Tomcat中部署java web应用程序
    【转】如何安装mysql服务
    【转】java_web开发入门
    【转】SVN 查看历史信息
    【转】java编译错误 程序包javax.servlet不存在javax.servlet.*
    【转】MySQL5安装的图解(mysql-5.0.27-win32.zip)
    【转】JAVA变量path , classpth ,java_home设设置作用和作用
    intellij idea 10.5介绍
    Java中的IO与NIO
    javaWeb完成注册功能
  • 原文地址:https://www.cnblogs.com/we-jack/p/8250648.html
Copyright © 2011-2022 走看看