很多框架的模板引擎都有页面静态化的功能  目的是为了优化网站运行时间

静态化分两种  纯静态和伪静态

一. 纯静态

纯静态展示的是实实在在的静态页面
运行PHP程序 判断是否存在静态页 如果存在 展示静态页 如果不存在 生成静态页 再展示
实现方法 是PHP的ob缓冲

    //PHP程序一系列逻辑 并将要展示的数据赋值给某些变量准备在模板中使用
ob_start();//开启ob缓冲区 也可以在配置文件中开启
require_once('template/index.php');//引入模板文件 也有可能是html文件 此时模板中的变量已全部解析替换
$s = ob_get_contents(); //将缓冲区的内容取出
file_put_contents('./index.html', $s);//将缓冲区的内容写入一个静态文件 一般的做法是将文件路径加密之后作为文件名

二.伪静态

伪静态就是在url上看起来是静态 实际上它走的还是动态流程
http://www.baidu.com/home/1.html
实现方法有两种
1.是项目路由解析把后缀拎出来
  $_SERVER变量里可以抓出url上面的所有节点 拆分成自己想要的即可 该替换的替换 该组合的组合
2.是Apache重写功能rewrite
  开启Apache重写功能 在项目目录中创建.htaccess文件写入规则
比如写入如下内容

    RewriteEngine on
RewriteRule ^localhost/([a-zA-Z]{1,})/([0-9]{1,})\.html$ localhost/$1.php?id=$2

如浏览器访问localhost/home/1.html 实际上被apache重写为localhost/home.php?id=1
重写规则的细节规则有点多,有兴趣的朋友可以去研究。

静态化技术也就这两种 伪静态只是url看起来好看 实际上对程序并没有优化效果

最新文章

  1. ios学习资源
  2. ReportViewer内存泄漏问题解决方案[上]
  3. 多线程java代码移植到android&下载文本界面的更新
  4. speed up your sharepoint
  5. Objective-C探究alloc方法的实现
  6. #include<> 和#include“”的区别
  7. mac 利用svn下载远程代码出现Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.
  8. AX_CreateAndPostPurch
  9. springboot 常用配置文件
  10. mysql5.6更改datadir数据存储目录
  11. 【Django】关于数据过滤
  12. BZOJ1087[SCOI2005]互不侵犯——状压DP
  13. Android App优化之ANR详解
  14. datetimerangepicker配置及默认时间段展示
  15. C 复制字符串
  16. Linux-文件和目录属性
  17. Arrays.asList的用法
  18. Linux下查看Tomcat的控制台输出信息
  19. linux 运维基础之http协议详解
  20. centos7 ACL

热门文章

  1. Chinese Rings hdu 2842 矩阵快速幂
  2. Centos7搭建swarm集群
  3. windows下创建Python虚拟环境
  4. java基础解析系列(八)---fail-fast机制及CopyOnWriteArrayList的原理
  5. zoj 1884 简单 键盘 字符 处理
  6. Java 继承、抽象、接口
  7. 错误:Cannot set property 'innerHTML' of null
  8. 1、Http概述
  9. (@WhiteTaken)设计模式学习——享元模式
  10. [js高手之路] 设计模式系列课程 - jQuery的extend插件机制