页面静态化和静态缓存

静态缓存:还需要请求php一些简单的判断,只是一些复杂的逻辑结构不需要再进行php处理。如在缓存数据库中的数据,这样就不用每次都请求数据库。典型的例子就是smarty中有页面静态缓存。

静态化:静态化相对于页面静态缓存更进了一步,使用静态化,就不需要使用php处理任何业务。每次请求的页面就是一个HTML页面。所以在优化的层面上,已经达到了顶层。如dedecms中使用生成首页。下次访问的时候,只是访问index.html。没有任何的php逻辑处理。

使用ob缓存制作页面静态化:

ob缓存使用:

在php解释执行中,在返回到服务器(apache/nginx)时,在这个php中,有一个输出缓冲区和一个程序缓冲区。要返回的内容都被缓冲到这。

输出缓冲:要输出的内容缓冲到这

程序缓冲:是在输出缓冲的下一个阶段,如果输出缓冲被关闭,内容将缓冲在这。

输出缓冲:

开启缓冲:ob_start('这里可以有一个回调函数,也就是前置钩子函数');这样接下来的内容都会被缓冲到输出缓冲中。注意:这里缓冲的内容只能是http主体内容。如:头信息是不能被缓冲到输出缓冲区的header('');

刷新缓冲:ob_flush()如果程序在开启缓冲区时,中间没有刷新缓冲区,则在脚本运行结束之后会自动刷新缓冲区。

还有很多的ob_系列的函数,可以参见手册。

注意:在一个页面中可以开启多个输出缓冲区,可以使用ob_get_level()函数,查看当前处于哪个输出缓冲区中。开启的多个输出缓冲是相互嵌套的就像if()语句嵌套一样。关闭时也是关闭相对应的输出缓冲。

程序缓冲:

程序缓冲就一个函数flush()来刷新程序缓冲区。不能做任何其他的操作。

弄清了这缓冲区的作用,我们可以让每次在程序中得到的数据立马刷新到浏览器中。这样就可以做聊天系统。

ob_end_clean();//关闭缓冲区

while(true){

.....

flush();//刷新程序缓冲区,因为程序缓冲区不能做任何的操作,只有刷新。这样我们将得到的内容立马个刷新到浏览器中展现出来

}

注意:有的浏览器需要到达一定的字节数量才能显示在浏览器中。我们可以使用一个技巧str_repeat(' ',1024);在while()之前输出,这样内容就多了。

我们可以通过输出缓冲将内容写到相应的html文件中,这样就可以做页面静态化。使用程序控制,下次请求的时候就直接请求HTML。

使用静态化注意的问题:

css/js/img路径可能不对,所以在做程序的时候,这些路径最好是生成根路径/

可能有的地方的数据需要是最新的。如用户评论,在解决这个问题我们可以使用ajax技术来弥补这个缺憾,做到部分数据实时性。

build vue 静态化_页面静态化相关推荐

  1. 动态页面静态化之页面静态化方案

    动态页面静态化之页面静态化方案 --------- 在大型网站中,访问者看到的页面基本上是静态页面.为什么都要把页面静态化呢? 把页面静态化,好处有很多.例如:访问速度快,更有利于搜索引擎收录等.目前 ...

  2. 网站性能优化之_页面静态化

    现在互联网发展越来越迅速,对网站的性能要求越来越高,也就是如何应对高并发量.像12306需要应付上亿人同时来抢票,淘宝双十一--所以,如何提高网站的性能,是做网站都需要考虑的. 首先网站性能优化的方面 ...

  3. jsp管理系统页面模板_页面静态化如何实现

    随着网站的内容的增多和用户访问量的增多,无可避免的是网站加载会越来越慢,受限于带宽和服务器同一时间的请求次数的限制,我们往往需要在此时对我们的网站进行代码优化和服务器配置的优化. 一般情况下会从以下方 ...

  4. mysql网页化_页面化操作数据库

    首先默认选择库test1,01.php中然后用show tables:查询出所有的表,然后用循环依次输出所有的表名,和操作超链接,超链接上对应有该表的信息传到02.php,02.php中,根据接收到的 ...

  5. 编辑器生成静态网页_使用静态网站生成器的7个理由

    编辑器生成静态网页 Static site generators have become increasingly popular and, if my prediction is correct, ...

  6. 构建静态服务器_为静态网站构建无服务器联系表

    构建静态服务器 介绍 (Introduction) A few years ago AWS launched static hosting service S3, which was a paradi ...

  7. 静态配置_配置静态LSP示例

    组网需求 如图1所示,网络拓扑结构简单并且稳定,LSR_1.LSR_2.LSR_3为MPLS骨干网设备.要求在骨干网上创建稳定的公网隧道来承载L2VPN或L3VPN业务. 图1 建立静态LSP的组网 ...

  8. build vue 选哪个_分析vue-cli项目,简单修改,来快速理解这个项目的结构

    这里我试着去简单分析一个完整的vue项目. 好吧,说它完整,其实只是基础而已,算不上完整. 本文步骤是一步一步,哪一步做不对,就不要往下走了. 更多文章请关注我的头条号,我是落笔承冰. 一.安装nod ...

  9. html太极图代码静态_如何做URL静态化?和页面的静态化

    为什么要进行URL静态化? 1.更好的迎合搜索引擎工作原理的爬行抓取机制: 2.把网站URL静态化更有助于网站获得好的排名: 3.URL静态化有利于用户体验.不容易出错 4.可以提高网站访速度.完全性 ...

最新文章

  1. phpstudy apache配置https
  2. Python标准库10 多进程初步 (multiprocessing包)
  3. Linux下防止文件误删方法
  4. Linux date指令
  5. Customizing Download - product hierarchy
  6. vue 设置全局变量、指定请求的 baseurl
  7. javascript 懒加载技术(lazyload)简单实现
  8. 使用iometer测试
  9. 关于垂直切分Vertical Sharding的粒度
  10. jmeter测试工具应用场景【测试帮日记公开课】
  11. Linux 基本权限管理
  12. python60行绘图程序_不敢相信,60行python代码就写出了贪吃蛇游戏
  13. 解决lay out无法使用闪退问题,SketchUp 2022 MAC中文 (草图大师) 支持M1intel芯片,支持monterey最新系统
  14. 淘宝双十一自动做任务方案
  15. 电脑计算机为什么不是有效程序,电脑提示“不是有效的win32应用程序”是什么原因【解决方法】...
  16. WindowsServer2019下使用Docker搭建内网GitLab
  17. 用python批量修改图片名称!超级简单
  18. 软考--快速掌握操作系统的PV操作
  19. 《云计算网络珠玑》新书有奖试读活动
  20. css中的before与after

热门文章

  1. php 头bom_关于php中bom头的简介
  2. 数据采集技术python网络爬虫答案_高校邦网络数据采集与Python爬虫【带实验】章节答案...
  3. golang GOPROXY及GOPRIVATE的设置及作用
  4. go channel管道select case随机选择管道数据
  5. 案例实操:Azkaban调度spark作业
  6. Python pip切换为国内镜像源(亲测可用)
  7. Python 爬虫开发:Ajax请求响应json案例
  8. Python Django 日期增减API
  9. 什么是死锁(deadlock)?
  10. openresty获取nginx原始的请求头内容