php ob_flush,flush在ie中缓冲无效的解决方法


Posted in PHP onMay 09, 2010

PHP程序的缓冲,而不论PHP执行在何种情况下(CGI ,web服务器等等)。该函数将当前为止程序的所有输出发送到用户的浏览器。
flush() 函数不会对服务器或客户端浏览器的缓存模式产生影响。因此,必须同时使用 ob_flush() 和flush() 函数来刷新输出缓冲。
个别web服务器程序,特别是Win32下的web服务器程序,在发送结果到浏览器之前,仍然会缓存脚本的输出,直到程序结束为止
自己写了个小例子,想在页面每隔一秒输出一个数字。

按照网上的代码:

ob_end_clean(); 
for ($i=10; $i>0; $i--) 
{ 
echo $i; 
flush(); 
sleep(1); 
}

或者:

for ($i=10; $i>0; $i--) 
{ 
echo $i; 
ob_flush(); 
flush(); 
sleep(1); 
}

我发现在火狐里面生效,但在IE里不起作用,每次都是10个数字一起输出,这说明缓冲没有生效。

我又开始调整php.ini里面的output_buffering的设置,重启apache,依旧无效。

然后我看到了一段话:

一些版本的 Microsoft Internet Explorer 只有当接受到的256个字节以后才开始显示该页面,所以必须发送一些额外的空格来让这些浏览器显示页面内容。

罪恶的IE浏览器,问题就是TMD的多!

然后我修改了下程序,便正常了:

echo str_pad('',4096); 
for ($i = 0; $i < 10; $i++) { 
echo $i; 
ob_flush(); 
flush(); 
sleep(1); 
}

//ob_end_flush();//IE8下没起作用 
echo str_pad(" ", 256);//IE需要接受到256个字节之后才开始显示 for($i=0;$i<18;$i++) { 
echo $i; 
flush(); 
sleep(1); 
}
PHP 相关文章推荐
sqlyog 中文乱码问题的设置方法
Oct 19 PHP
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
May 07 PHP
五款PHP代码重构工具推荐
Oct 14 PHP
php计算给定时间之前的函数用法实例
Apr 03 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
Jul 06 PHP
WordPress开发中短代码的实现及相关函数使用技巧
Jan 05 PHP
Yii模型操作之criteria查找数据库的方法
Jul 15 PHP
Yii2.0中的COOKIE和SESSION用法
Aug 12 PHP
php实现的统计字数函数定义与使用示例
Jul 26 PHP
PHP7.1实现的AES与RSA加密操作示例
Jun 15 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
Dec 01 PHP
如何用PHP实现分布算法之一致性哈希算法
May 26 PHP
php 各种应用乱码问题的解决方法
May 09 #PHP
php 输出双引号&quot;与单引号'的方法
May 09 #PHP
php for 循环语句使用方法详细说明
May 09 #PHP
php 函数使用方法与函数定义方法
May 09 #PHP
php 获取select下拉列表框的值
May 08 #PHP
PHP foreach循环使用详解与实例代码
May 08 #PHP
php 在文件指定行插入数据的代码
May 08 #PHP
You might like
PHP中如何定义和使用常量
2013/02/28 PHP
PHP判断远程图片或文件是否存在的实现代码
2014/02/20 PHP
php随机抽奖实例分析
2015/03/04 PHP
php自定义hash函数实例
2015/05/05 PHP
WordPress中缩略图的使用以及相关技巧
2015/11/24 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
js Flash插入函数免激活代码
2009/03/31 Javascript
js实现身份证号码验证的简单实例
2014/02/19 Javascript
使用npm发布Node.JS程序包教程
2015/03/02 Javascript
jQuery Validation PlugIn的使用方法详解
2015/12/18 Javascript
分享5个顶级的JavaScript Ajax组件库
2018/09/16 Javascript
微信小程序:数据存储、传值、取值详解
2019/05/07 Javascript
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
2020/05/19 jQuery
Vue项目中数据的深度监听或对象属性的监听实例
2020/07/17 Javascript
[43:43]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第一场 11.22
2020/11/24 DOTA
跟老齐学Python之Import 模块
2014/10/13 Python
python图片验证码生成代码
2016/07/02 Python
对变量赋值的理解--Pyton中让两个值互换的实现方法
2017/11/29 Python
python使用pil库实现图片合成实例代码
2018/01/20 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
python3.x实现base64加密和解密
2019/03/28 Python
Python日期时间Time模块实例详解
2019/04/15 Python
python常用库之NumPy和sklearn入门
2019/07/11 Python
python小程序实现刷票功能详解
2019/07/17 Python
css3+伪元素实现鼠标移入时下划线向两边展开的效果
2017/04/25 HTML / CSS
THE OUTNET英国官网:国际设计师品牌折扣网站
2016/08/14 全球购物
荷兰皇家航空公司中国官网:KLM中国
2017/12/13 全球购物
运动会广播稿20字
2014/02/18 职场文书
清正廉洁演讲稿
2014/05/22 职场文书
如何写早恋检讨书
2014/09/10 职场文书
授权委托书样本及填写说明
2014/09/19 职场文书
2015毕业设计工作总结
2015/07/24 职场文书
年中了,该如何写好个人述职报告?
2019/07/02 职场文书
Java Socket实现Redis客户端的详细说明
2021/05/26 Redis
php png失真的原因及解决办法
2021/10/24 PHP
Windows7下FTP搭建图文教程
2022/08/05 Servers