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

    一、静态化页面的优点和使用

    关于优化页面响应时间: 1.动态页面静态化(访问静态页面,减少数据库查询,提高访问速度) 如果页面中一些内容不经常改动,动态页面静态化是非常有效的加速方法。提高页面响应速率。 实质:生成静态的HTML文件。原因是静态页面不需解析、编译,减少服务器计算时间(减压)。
     
    好处:
    1.减少服务器脚本的计算时间(1.1.php文件执行顺序:程序分析——>编译——>运行——>显示结果。
    1.2.静态HTML文件的执行顺序:运行。) 动态程序执行过程:连接数据库服务器或者缓存服务器-获取数据(数据处理)-填充到模板-呈现给用户。
    2.降低服务器的响应时间;从而减少服务器的压力。
    3.减少服务器的缓存。 说明:不适合内容经常变换的应用(例如:微博等)
    适用场景:时效性差,新闻或报表类应用 2.优化数据库(优化SQL语句,提升查询速度,从而减少页面打开时间) 3.使用负载均衡(花钱买服务器。。。) 4.使用缓存(类似于动态页面静态化)
    1、尽量减少HTTP请求次数 2、减少DNS查找次数 3、避免跳转 4、可缓存的AJAX 5、推迟加载内容 6、预加载 7、减少DOM元素数量 8、根据域名划分页面内容 9、使iframe的数量最小 10、不要出现404错误 11、使用内容分发网络 12、为文件头指定Expires或Cache-Control 13、Gzip压缩文件内容 14、配置ETag 15、尽早刷新输出缓冲 16、使用GET来完成AJAX请求 17、把样式表置于顶部 18、避免使用CSS表达式(Expression) 19、使用外部JavaScript和CSS 20、削减JavaScript和CSS 21、用<link>代替@import 22、避免使用滤镜 23、把脚本置于页面底部
     
    二、buffer 认知
    缓冲区开启后,所有输出内容都会先存储到在内部缓冲区;
    缓冲区流程: 内容----buffer---tcp---客户端
    开启缓冲区:
       ①在php.ini 中 output_buffering=off
      ②在程序前写入 ob_start() 获取缓冲区内容: ob_get_contents()
     
    三、
    PHP如何实现页面纯静态化 基本方式 1、file_put_contents()函数 //根据返回值进行操作 //执行这段代码,生成xhtml静态页面,把一个字符串写入文件中。 file_put_contents('index.xhtml','yjpynwwvictor'); 2、使用PHP内置缓存机制实现页面静态化 - output_buffering file_put_contents() 函数把一个字符串写入文件中。与依次调用 fopen(),fwrite() 以及 fclose() 功能一样。 file_put_contents(file,data,mode,context) 参数 描述 file 必需。规定要写入数据的文件。如果文件不存在,则创建一个新文件。 data 可选。规定要写入文件的数据。可以是字符串、数组或数据流。 mode 可选。规定如何打开/写入文件。可能的值: FILE_USE_INCLUDE_PATH FILE_APPEND LOCK_EX context 可选。规定文件句柄的环境。 context 是一套可以修改流的行为的选项。若使用 null,则忽略。 全静态: 就是通过php生成静态html文件,一次生成,然后所有用户在一段时间内的访问都直接返回该静态html文件。当过了自定义的有效缓存时间后,重新生成一次静态文件即可。这样就不用在每次用户访问时候都重新生成 一次页面,从而节省系统开销。 常见的例子比如各大门户的首页。 主要用到: file_put_contents("output.html", ob_get_contents()); // 将当前的php缓存(output_buffering)内容输出到output.html文件中。 codeigniter框架支持这种全静态缓存。参考:http://codeigniter.org.cn/user_guide/general/caching.html 同时也有实现调用memcached缓存的接口
     
    四、
    纯静态 步骤: ①链接数据库,获取数据; ②把数据放在模板文件中; ③把动态页面转化为静态页面 ,生成纯静态化文件
     
    五、伪静态
     
    2016-03-07
    打开httpd.conf文件<br> 开启模块:LoadModule rewrite_module modules/mod_rewrite.so<br> 开启文件:Include conf/extra/httpd-vhosts.conf<br> <br> 找到文件:httpd-vhosts.conf配置相关的文件信息<br> <br> RewriteEngine on //开启<br> <br> //开启,能自动识别存在的目录文件<br> RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME}!-d<br> RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME}!-f<br> <br> //开启,定义伪静态的规则(如果不存在,则执行下面的伪静态规则)<br> RewriteRule ^/detail/([0-9]*).html$ /detail.php?id=$1<br> //在浏览器地址栏输入2.html,会自动执行detail.php并传递浏览器传递过来的id,我们可在detail.php输出
    WEB服务器rewrite配置以及案例 nginx下rewrite配置 rewrite ^/detail/(d+).html$ /detail.php?id=$1 last; 1、通过xshell连接虚拟机 cd /etc/nginx/conf.d sudo vim static.singwa.com.conf 在server->location->if语句里插入下面这段代码: rewrite ^/detail/(d+).shtml$ /detail.php?id=$1 last; 2、编写detail.php代码 cd /data/static/ sudo vim detail.php <?php echo "nginx: this id is ".$_GET['id']; 3、重启nginx服务器 sudo service nginx restart
  • 相关阅读:
    Spring不再推荐使用字段注入
    谈谈Web安全色(web safe color)
    mybatis写mapper文件注意事项
    GitHub下载加速
    ssm项目 ajax发起post请求,控制台一直404
    第一篇随笔
    C语言编程练习64:还是畅通工程
    C语言编程练习63:完数
    C语言编程练习62:汉诺塔3
    C语言编程练习61:Tempter of the bone
  • 原文地址:https://www.cnblogs.com/gaogaoxingxing/p/8649844.html
Copyright © 2011-2022 走看看