🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[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上一样都是改配置文件