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 相关文章推荐
深入了解php4(2)--重访过去
Oct 09 PHP
UCenter中的一个可逆加密函数authcode函数代码
Jul 20 PHP
php获取文件内容最后一行示例
Jan 09 PHP
php调用KyotoTycoon简单实例
Apr 02 PHP
php类常量用法实例分析
Jul 09 PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
Feb 26 PHP
ThinkPHP实现简单登陆功能
Apr 28 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
Apr 20 PHP
PHP实现的超长文本分页显示功能示例
Jun 04 PHP
PHP simplexml_import_dom()函数讲解
Feb 03 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
Mar 01 PHP
PHP实现发送微博消息功能完整示例
Dec 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
第十三节 对象串行化 [13]
2006/10/09 PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
2014/12/22 PHP
php版微信公众平台开发之验证步骤实例详解
2016/09/23 PHP
PHP基于自增数据如何生成不重复的随机数示例
2017/05/19 PHP
laravel migrate初学常见错误的解决方法
2017/10/11 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
TopList标签和JavaScript结合两例
2007/08/12 Javascript
extjs 学习笔记(一) 一些基础知识
2009/10/13 Javascript
jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
2010/04/25 Javascript
第七章之菜单按钮图标组件
2016/04/25 Javascript
利用Node.js+Koa框架实现前后端交互的方法
2017/02/27 Javascript
详解webpack require.ensure与require AMD的区别
2017/12/13 Javascript
浅谈vue项目如何打包扔向服务器
2018/05/08 Javascript
axios简单实现小程序延时loading指示
2018/07/30 Javascript
Django模板继承 extend标签实例代码详解
2019/05/16 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
2020/01/07 Javascript
js在HTML的三种引用方式详解
2020/08/29 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
2020/10/19 Javascript
[06:20]2015国际邀请赛第三日top10
2015/08/08 DOTA
python的迭代器与生成器实例详解
2014/07/16 Python
Python实现统计代码行的方法分析
2017/07/12 Python
分析Python中解析构建数据知识
2018/01/20 Python
Python实现的txt文件去重功能示例
2018/07/07 Python
Python with语句和过程抽取思想
2019/12/23 Python
python3正则模块re的使用方法详解
2020/02/11 Python
python matlab库简单用法讲解
2020/12/31 Python
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
美国销售第一的智能手机和平板电脑保护壳:OtterBox
2017/12/21 全球购物
美国修容界大佬创建的个人美妆品牌:Kevyn Aucoin Beauty
2018/12/12 全球购物
JS原生实现轮播图的几种方法
2021/03/23 Javascript
宿舍违规用电检讨书
2014/02/16 职场文书
2015企业年终工作总结范文
2015/05/27 职场文书
合作协议书格式范本
2016/03/21 职场文书
浅谈Redis在直播场景的实践方案
2021/04/27 Redis
python基于tkinter制作下班倒计时工具
2021/04/28 Python
Pyqt5将多个类组合在一个界面显示的完整示例
2021/09/04 Python