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调用三种数据库的方法(1)
Oct 09 PHP
php REMOTE_ADDR之获取访客IP的代码
Apr 22 PHP
php 静态页面中显示动态内容
Aug 14 PHP
PHP自定义函数收代码
Aug 01 PHP
php关于array_multisort多维数组排序的使用说明
Jan 04 PHP
php使用str_replace实现输入框回车替换br的方法
Nov 24 PHP
PHP封装的HttpClient类用法实例
Jun 17 PHP
YII使用url组件美化管理的方法
Dec 28 PHP
PHP之将POST数据转化为字符串的实现代码
Nov 03 PHP
浅谈PHP中pack、unpack的详细用法
Mar 12 PHP
PHP实现将base64编码字符串转换成图片示例
Jun 22 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
Jul 22 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 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
2012/04/09 PHP
php中curl和file_get_content的区别
2014/05/10 PHP
php实现检查文章是否被百度收录
2015/01/27 PHP
[原创]静态页面也可以实现预览 列表不同的显示方式
2006/10/14 Javascript
点图片上一页下一页翻页效果
2008/07/09 Javascript
javascript 防止刷新,后退,关闭
2010/08/07 Javascript
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
为什么Node.js会这么火呢?Node.js流行的原因
2014/12/01 Javascript
javascript用函数实现对象的方法
2015/05/14 Javascript
JQuery中DOM实现事件移除的方法
2015/06/13 Javascript
jquery UI Datepicker时间控件的使用方法(加强版)
2015/11/07 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
2016/05/17 Javascript
ionic2 tabs使用 Modal底部tab弹出框
2016/12/30 Javascript
javascript基础练习之翻转字符串与回文
2017/02/20 Javascript
Nodejs中的JWT和Session的使用
2018/08/21 NodeJs
每个 JavaScript 工程师都应懂的33个概念
2018/10/22 Javascript
js使用Promise实现简单的Ajax缓存
2018/11/14 Javascript
layui-laydate时间日历控件使用方法详解
2018/11/15 Javascript
element-ui封装一个Table模板组件的示例
2021/01/04 Javascript
[01:46]TI4西雅图DOTA2前线报道 中国选手抱团调时差
2014/07/08 DOTA
[01:02:04]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
使用python实现扫描端口示例
2014/03/29 Python
Python实现字典按照value进行排序的方法分析
2017/12/23 Python
python中使用psutil查看内存占用的情况
2018/06/11 Python
Python使用APScheduler实现定时任务过程解析
2019/09/11 Python
Python实现代码统计工具
2019/09/19 Python
keras处理欠拟合和过拟合的实例讲解
2020/05/25 Python
巴西宠物商店:Cobasi
2019/04/19 全球购物
物流管理专业毕业生求职信
2014/03/23 职场文书
个人租房协议书
2014/04/09 职场文书
多媒体编辑专业毕业生求职信
2014/06/13 职场文书
党员民主生活会个人整改措施材料
2014/09/16 职场文书
员工保密协议书
2014/09/27 职场文书
大学感恩节活动总结
2015/05/05 职场文书
mysql脏页是什么
2021/07/26 MySQL
HTML实现仿Windows桌面主题特效的实现
2022/06/28 HTML / CSS