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 相关文章推荐
require(),include(),require_once()和include_once()的异同
Jan 02 PHP
探讨PHP中OO之静态关键字以及类常量的详解
Jun 07 PHP
php ci框架验证码实例分析
Jun 26 PHP
PHP截断标题且兼容utf8和gb2312编码
Sep 22 PHP
PHP5.3新特性小结
Feb 14 PHP
PHP页面间传递值和保持值的方法
Aug 24 PHP
php源码 fsockopen获取网页内容实例详解
Sep 24 PHP
php 多文件上传的实现实例
Oct 23 PHP
PHP与jquery实时显示网站在线人数实例详解
Dec 02 PHP
php使用crypt()函数进行加密
Jun 08 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
Aug 02 PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 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
ThinkPHP CURD方法之field方法详解
2014/06/18 PHP
php读取der格式证书乱码解决方法
2015/06/22 PHP
JavaScript对象模型-执行模型
2008/04/28 Javascript
JavaScript 直接操作本地文件的实现代码
2009/12/01 Javascript
jquery 表单取值常用代码
2009/12/22 Javascript
javascript学习笔记(四) Number 数字类型
2012/06/19 Javascript
jquery可见性过滤选择器使用示例
2013/06/24 Javascript
js切换光标示例代码
2013/10/10 Javascript
JavaScript判断变量是否为undefined的两种写法区别
2013/12/04 Javascript
jquery实现效果比较好的table选中行颜色
2014/03/25 Javascript
浅析Node.js查找字符串功能
2014/09/03 Javascript
7个有用的jQuery代码片段分享
2015/05/19 Javascript
JS+CSS实现的蓝色table选项卡效果
2015/10/08 Javascript
详解Node.js中的事件机制
2016/09/22 Javascript
AngularJS2 与 D3.js集成实现自定义可视化的方法
2017/12/01 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
2018/10/12 Javascript
详解vue-cli 脚手架 安装
2019/04/16 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
在vue中获取wangeditor的html和text的操作
2020/10/23 Javascript
浅谈Vue static 静态资源路径 和 style问题
2020/11/07 Javascript
Javascript 模拟mvc实现点餐程序案例详解
2020/12/24 Javascript
聊聊vue 中的v-on参数问题
2021/01/29 Vue.js
python使用socket向客户端发送数据的方法
2015/04/29 Python
pygame游戏之旅 按钮上添加文字的方法
2018/11/21 Python
python3使用matplotlib绘制条形图
2020/03/25 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
2020/05/13 Python
推荐技术人员一款Python开源库(造数据神器)
2020/07/08 Python
python如何支持并发方法详解
2020/07/25 Python
Django-celery-beat动态添加周期性任务实现过程解析
2020/11/26 Python
python爬虫调度器用法及实例代码
2020/11/30 Python
Html5原生拖拽相关事件简介以及基础实现
2020/11/19 HTML / CSS
学期自我鉴定
2013/11/04 职场文书
党的群众路线教育实践活动个人对照检查材料(乡镇)
2014/11/05 职场文书
2014年大堂经理工作总结
2014/11/21 职场文书
债务纠纷代理词
2015/05/25 职场文书
2016幼儿园教师年度考核评语
2015/12/01 职场文书