ob缓存函数使用-【页面静态化】
2015-07-28 01:24
537 查看
动态页面能实时的更新页面内容,但是因为动态页面要执行脚本,操作数据库,所以访问速度现对于静态页面更慢一点,当网站访问量较大时,尤其是新闻类更新频繁访问量大的站点,如果每个页面都要去连接数据库,取数据,会给web服务器和数据库服务器带来很大的压力,甚至导致网站瘫痪。页面静态化技术能极大的提高页面的访问速度,因为不用执行很多的动态脚本,也不用不进行耗时的数据库操作。服务器直接返回用户所需要的内容就可以了。另外静态页面也有利于搜索引擎的搜索。
页面静态化分为真静态和伪静态,伪静态只是在url上伪装成一个静态页面,其内容还是动态的,这样有利于搜索引擎的搜索。
在php中,真静态可以利用ob缓存(output buffer)和模板替换来实现,php的ob缓存函数主要有:
flush — 刷新输出缓冲
ob_clean — 清空(擦掉)输出缓冲区
ob_end_clean — 清空(擦除)缓冲区并关闭输出缓冲
ob_end_flush — 冲刷出(送出)输出缓冲区内容并关闭缓冲
ob_flush — 冲刷出(送出)输出缓冲区中的内容
ob_get_clean — 得到当前缓冲区的内容并删除当前输出缓。
ob_get_contents — 返回输出缓冲区的内容
ob_get_flush — 刷出(送出)缓冲区内容,以字符串形式返回内容,并关闭输出缓冲区。
ob_get_length — 返回输出缓冲区内容的长度
ob_get_level — 返回输出缓冲机制的嵌套级别
ob_get_status — 得到所有输出缓冲区的状态
ob_start — 打开输出控制缓冲
ob缓存函数可以控制脚本的输出,从而可以自由处理输出产生的结果。我们可以把结果存入一个静态页面中。
模板替换则是通过一些字符串替换函数来把模板页面中的指定部分替换成相应的数据,然后存入静态页面中。
文章页面的缓存:
一般来说文章是不会轻易修改的,有以下两种缓存方案
1,当谋篇文章第一次被访问时,查询数据库并生成静态页面,以后每次访问只需返回之前的静态页面就可以了。
2,当文章被添加的时候就生成该文章的静态页面,如果有修改就在修改后更新一下缓存的静态页面。
网站首页面的缓存方案:
网站首页是一个网站访问量最大的页面,包含的模块,涉及的数据比较多,如果缓存成静态文件会为服务器减少一定的压力,一般由网站的后台管理员手动去更新首页的缓存。比如某个模块的内容更新了,管理员就可以去更新一下前台首页的缓存文件,以便让前台用户可以看到更新的内容。
作为网站提速的核心技术之一,页面静态化技术还是非常重要的。
页面静态化分为真静态和伪静态,伪静态只是在url上伪装成一个静态页面,其内容还是动态的,这样有利于搜索引擎的搜索。
在php中,真静态可以利用ob缓存(output buffer)和模板替换来实现,php的ob缓存函数主要有:
flush — 刷新输出缓冲
ob_clean — 清空(擦掉)输出缓冲区
ob_end_clean — 清空(擦除)缓冲区并关闭输出缓冲
ob_end_flush — 冲刷出(送出)输出缓冲区内容并关闭缓冲
ob_flush — 冲刷出(送出)输出缓冲区中的内容
ob_get_clean — 得到当前缓冲区的内容并删除当前输出缓。
ob_get_contents — 返回输出缓冲区的内容
ob_get_flush — 刷出(送出)缓冲区内容,以字符串形式返回内容,并关闭输出缓冲区。
ob_get_length — 返回输出缓冲区内容的长度
ob_get_level — 返回输出缓冲机制的嵌套级别
ob_get_status — 得到所有输出缓冲区的状态
ob_start — 打开输出控制缓冲
ob缓存函数可以控制脚本的输出,从而可以自由处理输出产生的结果。我们可以把结果存入一个静态页面中。
模板替换则是通过一些字符串替换函数来把模板页面中的指定部分替换成相应的数据,然后存入静态页面中。
文章页面的缓存:
一般来说文章是不会轻易修改的,有以下两种缓存方案
1,当谋篇文章第一次被访问时,查询数据库并生成静态页面,以后每次访问只需返回之前的静态页面就可以了。
2,当文章被添加的时候就生成该文章的静态页面,如果有修改就在修改后更新一下缓存的静态页面。
网站首页面的缓存方案:
网站首页是一个网站访问量最大的页面,包含的模块,涉及的数据比较多,如果缓存成静态文件会为服务器减少一定的压力,一般由网站的后台管理员手动去更新首页的缓存。比如某个模块的内容更新了,管理员就可以去更新一下前台首页的缓存文件,以便让前台用户可以看到更新的内容。
作为网站提速的核心技术之一,页面静态化技术还是非常重要的。
相关文章推荐
- WDS服务器使用华为DHCP中继响应的方法
- php常用算法
- header中content-type的配置项
- 二次分发举例
- php.ini帮助理解
- 读书笔记MoreEffectiveC++(19)
- 最大流dinic模板
- Leetcode Q6:ZigZag Conversion
- 深入掌握JMS(八):JMSReplyTo
- apache自带压力测试
- android Github-Client(ANDROID)开源之旅(三) ------ 巧用ViewPagerIndicator
- ubuntu笔记
- AutoCAD2013中曲线的绘制方法
- AutoCAD2013中曲线的绘制方法
- 指针变量复习
- BootStrap导航条
- 马的遍历问题
- Android应用闪屏的制作,手把手教
- 马的遍历问题
- php面试题1