您的位置:首页 > 其它

ob缓存实现页面静态化

2016-11-20 13:24 363 查看


ob缓存实现页面静态化


转载▼

如何实现页面静态化:

通过php的ob缓存来实现

提高速度
1,通过php的ob缓存来实现

使用php的ob缓存实现页面静态化

修改php.ini配置文件

output_buffering=Off

1,缓存:smarty缓存, ThinkPHP框架的缓存,PHP的ob缓存

(1)ob---缓存,先将输出的数据呢,缓冲到一块空间

然后显示的时候再显示这块空间的缓存的数据

1,ob_start()  先将输出的数据优先放入到 ob缓存中

2,ob_clean()  清空缓存,但是没有关闭

3,ob_end_clean()  清空缓存,同时也关闭缓存

4,ob_flush()   将ob缓存的数据,输出到程序缓存

5,ob_end_flush()  将ob缓存的数据输出到程序缓存并且关闭ob缓存

(1)程序缓存

就是如果没有开启ob缓存,先将数据缓存到程序中,等echo都完了,再统一的输出

浏览器也有缓存:

浏览器先攒着数据,等达到一定的数量之后(ie 500多MB)的时候才输出

 

<?php

ob_start();//开启php的ob缓存,这些数据放到ob缓存中,没有开启ob缓存,然后放到程序缓存中

echo 'hello';

echo '<br>';

header("Content-Type:text/html;charset=utf-8");

echo 'world';

echo ob_get_contents();//获得缓存中的数据,所以会输出两遍

?>

 

<?php

ob_start();

echo 'hello';

echo '<br>';

header("Content-Type:text/html;charset=utf-8");

echo 'world';

ob_end_clean();//清除缓存,并且关闭缓存

echo 'aaa';//上面虽然清除了缓存,但是这还能输出

echo ob_get_contents();//会输

 

?>

说的简单点:默认情况下,php会把输出的内容放到【程序缓存】中,待程序跑完,把【程序缓存】中的东西全部抛到浏览器中;现在使用ob缓存,开启后,所有的输出都会放到【ob缓存】中,头信息(header)等这些依旧存放到【程序缓存】中,待程序跑完,【ob缓存】中的内容会被放到【程序缓存】内容后面,再送到浏览器。ob_flush()是把【ob缓存】中的内容放到【程序缓存】中,之前只有待程序跑完才会把【ob缓存】内容放到【程序缓存】中,现在用ob_flush()就可以在任意时候送到【程序缓存】中;flush()函数的作用是把【程序缓存】中的数据抛到浏览器中;
总结:ob_flush()把ob缓存中的内容放到程序缓存
flush()是把程序缓存中的内容送到浏览器缓存中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: