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 闭包特性在实际应用中的问题
Oct 30 PHP
PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
Apr 08 PHP
解析PHP中ob_start()函数的用法
Jun 24 PHP
深入解析PHP 5.3.x 的strtotime() 时区设定 警告信息修复
Aug 05 PHP
PHP图片上传代码
Nov 04 PHP
php中chdir()函数用法实例
Nov 13 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
Mar 17 PHP
YII动态模型(动态表名)支持分析
Mar 29 PHP
php判断文件上传图片格式的实例详解
Sep 30 PHP
php使用redis的有序集合zset实现延迟队列应用示例
Feb 20 PHP
laravel7学习之无限级分类的最新实现方法
Sep 30 PHP
php中yar框架实例用法讲解
Dec 27 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
解决AJAX中跨域访问出现'没有权限'的错误
2008/08/20 Javascript
一个判断email合法性的函数[非正则]
2008/12/09 Javascript
Mootools 1.2教程(3) 数组使用简介
2009/09/14 Javascript
被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用
2010/01/22 Javascript
dtree 网页树状菜单及传递对象集合到js内,动态生成节点
2012/04/14 Javascript
Jquery Validate 正则表达式实用验证代码大全
2013/08/23 Javascript
JS 操作Array数组的方法及属性实例解析
2014/01/08 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
学习JavaScript设计模式之观察者模式
2020/04/22 Javascript
Javascript实现单例模式
2016/01/24 Javascript
基于JS实现Android,iOS一个手势动画效果
2016/04/27 Javascript
jQuery针对input的class属性写了多个值情况下的选择方法
2016/06/03 Javascript
jQuery树控件zTree使用方法详解(一)
2017/02/28 Javascript
解决浏览器会自动填充密码的问题
2017/04/28 Javascript
vue实现添加与删除图书功能
2018/10/07 Javascript
NodeJS读取分析Nginx错误日志的方法
2019/05/14 NodeJs
在antd4.0中Form使用initialValue操作
2020/11/02 Javascript
[02:24]DOTA2痛苦女王 英雄基础教程
2013/11/26 DOTA
[35:43]2018DOTA2亚洲邀请赛 4.1 小组赛B组 paiN vs Effect
2018/04/03 DOTA
Python中pygame安装方法图文详解
2015/11/11 Python
浅谈python字典多键值及重复键值的使用
2016/11/04 Python
python利用urllib和urllib2访问http的GET/POST详解
2017/09/27 Python
python 按不同维度求和,最值,均值的实例
2018/06/28 Python
python迭代dict的key和value的方法
2018/07/06 Python
python求加权平均值的实例(附纯python写法)
2019/08/22 Python
python实现自动清理重复文件
2020/08/24 Python
Python2与Python3关于字符串编码处理的差别总结
2020/09/07 Python
PyCharm最新激活码PyCharm2020.2.3有效
2020/11/18 Python
HTML5超炫酷粒子效果的进度条的实现示例
2019/08/23 HTML / CSS
日本运动品牌美津浓官方购物网站:MIZUNO SHOP
2016/08/21 全球购物
不用游标的SQL语句有哪些
2012/09/07 面试题
客房主管岗位职责
2013/12/09 职场文书
学校安全检查制度
2014/01/27 职场文书
党的群众路线教育实践活动学习心得体会
2014/03/03 职场文书
《小鹰学飞》教学反思
2014/04/23 职场文书
小学生光盘行动倡议书
2015/04/28 职场文书