标签:
主要是为了减少数据库的操作,让MySQL能够提供更强大的服务
?
注意:只要不使用sql语句作为查询条件的数据库(仓库)就叫做NOSQL数据库
将动态请求的数据保存为静态的HTML文本,供访问用户下次直接返回。
?
静态化技术分类:
形式上:
?
范围上分类:
?
简单对比测试:
动态访问:
静态的访问:
通过对比:发现静态的请求明显要优于动态的请求。所有完成有必要进行页面静态化技术。
?
?
完成页面静态化技术主要使用php提供的ob缓存来实现这个技术。ob(output_buffering)定义为输出缓存(缓冲),这缓存可以把php处理的数据放到里面,然后我们可以将里面的数据获取,然后保存为静态的文本。
?
响应头:主要是给浏览器查看的
响应主体:主要是给用户查看的,为html标签的内容
?
?
当ob缓存开启之后,这个时候php脚本执行后的数据就会先保存到ob缓存里面,当php脚本执行完毕之后,就会把ob缓存里面的内容移动到程序缓存里面。然后程序缓存将数据返回给Apache服务器,Apache服务器将数据返回给浏览器缓存,当浏览器的缓存大小达到一定数量的时候,浏览器就会显示出数据。
当ob缓存没有开启的时候,这个时候php脚本处理的数据就直接移动到程序缓存里面,然后返回Apache,Apache返回给浏览器的缓存,达到一定的大小就显示出来。
?
解释:浏览器不会立马显示数据,填充一定数据大小之后,才显示服务器返回的数据。
主要是浏览器在显示数据的时候,渲染数据是要耗费系统资源的。
?
ob_start(): 代表开启ob缓存
ob_get_contents():获取ob缓存里面的内容
?
问题1:在响应头输出之前是不能有信息输出的。
效果:
注意:当开启ob缓存之后,为什么不会出现waring级别的提示?
主要是由于ob缓存开启,先将数据保存到ob缓存里面,将响应头信息保存到程序缓存
效果:
图示解释:
?
?
ob_get_contents()函数
效果:
注意:这个时候就可以使用ob_get_contents()函数将ob缓存的内容获取,然后使用file_put_contents()将内容保存为静态的HTML文本。当用户下次访问的时候直接检查这个静态文本是否存在,存在即返回。
?
ob_clean()函数,用来清空ob缓存里面的内容,但是不关闭ob缓存
ob_end_clean()函数,用来清空ob缓存里面的内容,关闭ob缓存
?
ob_clean()函数
效果:
?
ob_end_clean()
效果:
解释:当使用该函数后,ob缓存会先清空然后在关闭。
?
?
ob_flush() 将ob缓存的内容先移动到程序缓存,不关闭ob缓存
ob_end_flush() 将ob缓存的内容先移动到程序缓存,关闭ob缓存
?
?
ob_flush()
效果:
?
ob_end_flush()
效果:
?
重要的函数为:ob_start() 和 ob_get_contents() 函数 file_put_contents() 和 file_exist()
?
Apache提供的一个压力检测工具(Apache benchmark),可以来判定一个网站抗压能力,同时还可以获取到网站响应的大小和时间等其他信息。
?
在命令行下将ab.exe命令放入使用 -n 并发数 -c 总的请求数
C:\Documents and Settings\Administrator>D:\wamp\apache\bin\ab.exe -c 100 -n 3000
http://local.order.com/dynamic.php
?
注意:
动态页面:
静态页面:
1370 法则: 1s钟内打开的页面,如果在3s后打开,平均会损失70%的用户。
通过Apache压力测试工具可以分析网站的一个性能问题。
?
标签:
原文地址:http://www.cnblogs.com/nyxd/p/5369842.html