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 相关文章推荐
php单件模式结合命令链模式使用说明
Sep 07 PHP
PHP开发中四种查询返回结果分析
Jan 02 PHP
在windows服务器开启php的gd库phpinfo中未发现
Jan 13 PHP
探讨如何在php168_cms中提取验证码
Jun 08 PHP
解析在PHP中使用全局变量的几种方法
Jun 24 PHP
php递归使用示例(php递归函数)
Feb 14 PHP
php解决约瑟夫环示例
Apr 09 PHP
10个超级有用值得收藏的PHP代码片段
Jan 22 PHP
PHP中实现crontab代码分享
Mar 26 PHP
PHP函数import_request_variables()用法分析
Apr 02 PHP
php 浮点数比较方法详解
May 05 PHP
Ajax中的JSON格式与php传输过程全面解析
Nov 14 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
初学JavaScript第二章
2008/09/30 Javascript
javascript实现的网页局布刷新效果
2008/12/01 Javascript
jquery ajax 登录验证实现代码
2009/09/23 Javascript
在javaScript中关于submit和button的区别介绍
2013/10/20 Javascript
一个仿糯米弹框效果demo
2014/07/22 Javascript
javascript删除数组重复元素的方法汇总
2015/06/24 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
2015/11/04 Javascript
JavaScript优化专题之Loading and Execution加载和运行
2016/01/20 Javascript
Bootstrap轮播插件简单使用方法介绍
2016/06/21 Javascript
JavaScript实现的鼠标响应颜色渐变效果完整实例
2017/02/18 Javascript
React 使用Hooks简化受控组件的状态绑定
2019/03/18 Javascript
详解JS取出两个数组中的不同或相同元素
2019/03/20 Javascript
搭建一个Koa后端项目脚手架的方法步骤
2019/05/30 Javascript
nodeJs的安装与npm全局环境变量的配置详解
2020/01/06 NodeJs
vue实现简单跑马灯效果
2020/05/25 Javascript
vue addRoutes路由动态加载操作
2020/08/04 Javascript
[02:40]2018年度DOTA2最佳新人-完美盛典
2018/12/16 DOTA
Python 检查数组元素是否存在类似PHP isset()方法
2014/10/14 Python
Python实现将DOC文档转换为PDF的方法
2015/07/25 Python
Python和C/C++交互的几种方法总结
2017/05/11 Python
python 矩阵增加一行或一列的实例
2018/04/04 Python
对python调用RPC接口的实例详解
2019/01/03 Python
Python弹出输入框并获取输入值的实例
2019/06/18 Python
python安装dlib库报错问题及解决方法
2020/03/16 Python
Python生成器常见问题及解决方案
2020/03/21 Python
python实现猜单词游戏
2020/05/22 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
keras实现VGG16方式(预测一张图片)
2020/07/07 Python
Python 操作 MySQL数据库
2020/09/18 Python
python自动化发送邮件实例讲解
2021/01/04 Python
英国在线花园中心:You Garden
2018/06/03 全球购物
澳大利亚珍珠首饰购物网站:Vayo Pearls
2019/03/11 全球购物
会议欢迎词
2015/01/23 职场文书
运动会观后感
2015/06/09 职场文书
李白经典诗之一:全文无一“月”字,却句句有月
2019/07/12 职场文书
redis连接被拒绝的解决方案
2021/04/12 Redis