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 相关文章推荐
从C/C++迁移到PHP——判断字符类型的函数
Oct 09 PHP
Apache2 httpd.conf 中文版
Dec 06 PHP
php学习笔记 php中面向对象三大特性之一[封装性]的应用
Jun 13 PHP
基于PHP常用函数的用法详解
May 10 PHP
编写安全 PHP应用程序的七个习惯深入分析
Jun 08 PHP
使用PHP导出Redis数据到另一个Redis中的代码
Mar 12 PHP
php中使用Ajax时出现Error(c00ce56e)的详细解决方案
Nov 03 PHP
PHP+MySQL修改记录的方法
Jan 21 PHP
wordpress安装过程中遇到中文乱码的处理方法
Apr 21 PHP
Zend Framework框架路由机制代码分析
Mar 22 PHP
基于PHP实现用户注册登录功能
Oct 14 PHP
PHP多维数组指定多字段排序的示例代码
May 16 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 mssql 时间格式问题
2009/01/13 PHP
jQuery EasyUI API 中文文档 - DateBox日期框
2011/10/15 PHP
PHP中Trait及其应用详解
2017/02/14 PHP
php抽象类和接口知识点整理总结
2019/08/02 PHP
PHP常用函数之格式化时间操作示例
2019/10/21 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
2019/12/04 PHP
JQUERY的属性选择符和自定义选择符使用方法(二)
2011/04/07 Javascript
javascript和jquery修改a标签的href属性
2013/12/16 Javascript
JS实现仿QQ效果的三级竖向菜单
2015/09/25 Javascript
Jquery promise实现一张一张加载图片
2015/11/13 Javascript
jQuery基于ajax()使用serialize()提交form数据的方法
2015/12/08 Javascript
jQuery+JSON实现AJAX二级联动实例分析
2015/12/18 Javascript
Javascript中的迭代、归并方法详解
2016/06/14 Javascript
使用json来定义函数,在里面可以定义多个函数的实现方法
2016/10/28 Javascript
微信小程序 swiper组件轮播图详解及实例
2016/11/16 Javascript
jQuey将序列化对象在前台显示地实现代码(方法总结)
2016/12/13 Javascript
使用nodeJs来安装less及编译less文件为css文件的方法
2017/11/20 NodeJs
vue权限问题的完美解决方案
2019/05/08 Javascript
vue简单封装axios插件和接口的统一管理操作示例
2020/02/02 Javascript
不要用强制方法杀掉python线程
2017/02/26 Python
Python 备份程序代码实现
2017/03/06 Python
Python实现列表删除重复元素的三种常用方法分析
2017/11/24 Python
手把手教你进行Python虚拟环境配置教程
2020/02/03 Python
Python pexpect模块及shell脚本except原理解析
2020/08/03 Python
Otel.com:折扣酒店预订
2017/08/24 全球购物
亿阳信通股份有限公司笔试题(C#)
2016/03/04 面试题
2014年寒假社会实践活动心得体会
2014/04/07 职场文书
办公室主任竞聘演讲稿
2014/05/15 职场文书
护理专业毕业生自荐信
2014/06/15 职场文书
大学生志愿者活动总结
2014/06/27 职场文书
2014年大学生社会实践自我鉴定
2014/09/26 职场文书
构建和谐校园倡议书
2015/01/19 职场文书
幼儿园小朋友毕业感言
2015/07/30 职场文书
MySQL表的增删改查基础教程
2021/04/07 MySQL
深度学习tensorflow基础mnist
2021/04/14 Python
浅谈Redis存储数据类型及存取值方法
2021/05/08 Redis