[toc]
## :-: **1、动态页面的解析流程**
语法分析-》编译-》运行-》展示结果
## :-: **2、如何优化动态页面的响应时间**
动态页面静态化;优化数据库;使用负载均衡;使用缓存
## :-: **3、动态页面静态化的好处**
- 减少服务器脚本的计算时间,节省服务器资源;降低服务器的响应时间,更快的响应,让用户体检更好;
- 因为静态文件,直接展示结果
## :-: **4、动态的url如何设置成静态url的形式**
![](https://box.kancloud.cn/6dc3f2297ddfb9d8d0217d7cdce2e635_482x264.png)
## :-: **5、什么是伪静态**
伪静态:看着和静态页面似的,其实访问的还是动态url(动态的url地址转换成静态页面的地址)
## :-: **6、页面静态化的分类**
![](https://box.kancloud.cn/80fc26b0ac510008603d555f162a95b1_763x371.png)
想做静态化有一个必会的,就是buffer
## :-: **7、了解buffer**
![](https://box.kancloud.cn/caa1fbfe19d07e75419e33731a4046fa_507x320.png)
示例:保存文件,先写到一个buffer(操作系统的buffer)中,当一个buffer写满了之后,在将buffer中的数据写入到硬盘中
## :-: **8、php的buffer流程**
![](https://box.kancloud.cn/e79c6ea21708b775fbb9024512ef5a37_752x167.png)
语法分析-》编译-》当我们执行(运行)php程序的时候。先是保存在php的buffer缓冲区,当一个缓冲区当中写满了之后,脚本进程就会给php buffer中的数据通过tcp传给客户端
- php的buffer在俩个地方控制:
- 在配置文件php.ini中
![](https://box.kancloud.cn/b20a76da538966a4261f6008f5761519_278x22.png)
- 在脚本文件中开启ob_start()
>[warning]如果在php.ini中开启了buffer,在脚本中不写ob_start()照样可以使用,因为php.ini是最大的,谁都要听他的
>[warning]如果php.ini和脚本中都开启了buffer,那么就会开辟2块内存缓存区(脚本中的应该是在php.ini中新开的缓存区)
![](https://box.kancloud.cn/4297c1b2945c1915960c04f3d6fd5fc7_553x89.png)
## :-: **9、常用的ob函数**
![](https://box.kancloud.cn/9c18f7d8a661ba6361749101edcf5fec_488x211.png)
最后一个函数,相当于第2和第3个合并起来
![](https://box.kancloud.cn/d4398e46de9a52315109bd960fdc0c9f_496x83.png)
因为他是先放到缓冲区-》tcp-》浏览器。缓冲区都清空了,tcp没有传的了,浏览器当然就没显示了。
## :-: **10、页面静态化 实现思路(最简单)**
思路:查好数据-》引入模板文件-》将数据在模板文件中遍历好-》给模板文件写成静态文件
![](https://box.kancloud.cn/7e5a02951e1af306be8f9cea69222832_1211x520.png)
## :-: **11、页面静态化 实现思路(常用)**
![](https://box.kancloud.cn/23f0a0697ccb0e5bcb9c1067635f873a_496x224.png)
比上面的代码多加一个怕判断,和换一个函数(看红框)
![](https://box.kancloud.cn/17833a98122a67a17143a497c659ee18_1325x442.png)
## :-: **12、页面静态化 实现思路(手动 整体更新)**
![](https://box.kancloud.cn/ca829259edfd1f0535b32bf21484d387_463x141.png)
思路:点击开始更新的处理逻辑和“第10步”一样。查好数据-》是引入模板文件-》将数据在模板文件中遍历好-》给模板文件写成静态文件
## :-: **13、页面静态化 实现思路(自动 定时更新)**
在crontab -e 中调用9或10的脚本
## :-: **14、局部纯静态(可理解为,有一部分是动态文件)**
思路:在<span style="color:red;">模板文件</span>中<span style="color:red;">写ajax</span>
>[warning]而不是在index.shtml中,因为静态文件是根据模板文件生成的,静态文件在没生成的时候还没有呢,或过期了就被覆盖了。
ajax请求的方法(接口)里查询的数据-》组装数据-》返回数据
![](https://box.kancloud.cn/145cf11c21f6cb95abe80f4d66702b78_667x383.png)
这样,再次刷新的时候,走到ajax他就会去动态加载数据-》填充模板-》生成静态文件-》显示给用户
## :-: **15、php处理伪静态**
![](https://box.kancloud.cn/74c83e94b11ca26e6951fcb2f905417e_681x470.png)
至于apache或nginx配置伪静态可以去百度上搜,一抓一大把,也可以看我这篇博客,win和linux上一样都是改配置文件
- 杂谈
- 开发 & 维护的工作流程
- 新手如何看php手册 和 框架手册
- 开发 & 维护的不同点
- 从0到1,搭建新项目的工作流程
- 从1到N,维护的工作流程
- 优化流程
- 生成错误日志和慢日志的方法
- 查错思路
- 怎么快速接手一个项目
- 前端常用知识点
- javascript
- 自己封装的函数
- 处理数字
- 功能代码
- 动态添加图片
- 判断是手机端还是pc端
- javascript:;是什么意思?怎么用呢
- html & h5
- a标签中target设置为blank和_blank有什么区别?
- 乱码
- 提交方式:button标签 和 input
- 块元素
- 内联元素
- h5特有属性
- h5的localStorage【增、删、改、查】
- jquery
- 常用方法
- 功能代码
- 动态删除图片
- 一个按钮,切换2种状态
- 换肤
- 深入理解(function(){... })();
- json & xml
- json
- 语法速记
- json对象取值
- 字符串、对象、数组的区别
- xml
- [CDATA[%s]]的作用是什么
- 转义字符
- CDATA 想被xml解析的文本数据
- CDATA 不想被xml解析的文本数据
- 微信小程序
- 其他
- websocket
- 跨域
- css
- 行内 & 内连 & 外连 写法
- 优先级
- 更加精准的匹配
- 使用百分比如何生效
- php在html、js、jq中的的原生写法
- *php在html中的语法
- php在js中的语法
- php在jq中的语法
- 正则表达式
- php常用基础知识(思想为主)
- php为什么是“边编译边运行”
- 冒号、endif、endwhile、endfor使用
- 递归思想(速记法)
- cookie和session的理解
- php常用内置(系统)函数
- 常量
- 字符串
- 数组
- 日期时间
- 文件 & 目录
- 数学
- 程序执行
- 判断
- 选项和信息(修改配置文件的)
- 错误处理 & 日志记录
- 编码格式
- session
- IP相关
- 类 & 对象
- 性能
- 其他函数
- 魔术方法
- $_SERVER
- 变量处理
- php自己封装的一些函数
- 导入、导出、生成文件
- 数组
- 数字
- 字符串
- 其他
- 获取linux硬件信息
- 常见插件/类库使用
- 前端-框架/插件
- bootstrap 学习笔记
- layer 学习笔记
- layDate 学习笔记
- 百度ueditor1.4.4.3富文本编辑器
- quill富文本编辑器
- 百度ECharts图形报表
- webuploader上传图片
- 后端类库
- workerman 聊天室
- QRCODE 二维码
- redis
- seaslog 日志
- phpspider 爬虫
- Mailer 发送邮件
- simple_html_dom
- phpstorm使用
- 快捷键
- 连接mysql数据库
- 断点 + debug调试
- 运行内存不够
- wamp环境
- yii、laravel、tp、开发自己的php框架
- 看框架源码的思路
- tp5框架的使用
- 1、助手函数原理解析
- 开发自己的php框架
- 常用的开发思路 和 小功能实现代码
- 爬虫思路
- 功能点思路
- tp5判断是不是异地登录(简单版)
- 微信开发,反向代理
- 微信开发,关闭当前页面
- 消息队列的实现
- 页面静态化
- session串号
- 站内信设计思路
- web在线管理器
- 语言相关(开发有关)
- 接收json(text/xml)格式数据
- 原生文件上传(状态码)
- openssl扩展
- 打印对象 和 遍历对象
- 使用OB缓存的几个原则
- CLI模式执行php文件
- foreach时,添加元素 或 修改元素的值
- 功能点 代码实现
- 生成url目录树(没有pid)
- 多图上传(vue传base64)
- 下载文件,耗时算法
- 生成商品二维码
- 导出excel
- 搜索
- 阿里大鱼发短信
- 使用阿里云oss
- location.href跳转后,丢失用户的session
- “\r ” “\r\n” “\t”的区别
- php的配置文件详解
- 开启错误日志
- 开启慢日志
- 开启短标签
- 分析php-fpm.conf中的request_terminate_timeout参数