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 Hash函数,增强密码安全
Feb 25 PHP
php生成局部唯一识别码LUID的代码
Oct 06 PHP
一个php短网址的生成代码(仿微博短网址)
May 07 PHP
php面象对象数据库操作类实例
Dec 02 PHP
深入解析WordPress中加载模板的get_template_part函数
Jan 11 PHP
yii2控制器Controller Ajax操作示例
Jul 23 PHP
PHP入门教程之表单与验证实例详解
Sep 11 PHP
php安全配置记录和常见错误梳理(总结)
Mar 28 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
Jul 03 PHP
php实现将二维关联数组转换成字符串的方法详解
Jul 31 PHP
ThinkPHP 在阿里云上的nginx.config配置实例详解
Oct 11 PHP
PHP学习记录之常用的魔术常量详解
Dec 12 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获取地址栏信息的代码
2008/10/08 PHP
神盾加密解密教程(一)PHP变量可用字符
2014/05/28 PHP
PHP+Ajax 检测网络是否正常实例详解
2016/12/16 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
Yii1.1框架实现PHP极光推送消息通知功能
2018/09/06 PHP
php解决crontab定时任务不能写入文件问题的方法分析
2019/09/16 PHP
PHP isset empty函数相关面试题及解析
2020/12/11 PHP
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
jquery插件开发注意事项小结
2013/06/04 Javascript
JavaScript:Div层拖动效果实例代码
2013/08/06 Javascript
js判断文件格式及大小的简单实例(必看)
2016/10/11 Javascript
Vue.js组件使用开发实例教程
2016/11/01 Javascript
JS敏感词过滤代码
2016/12/23 Javascript
利用Js+Css实现折纸动态导航效果实例源码
2017/01/25 Javascript
nodejs开发微信小程序实现密码加密
2017/07/11 NodeJs
详谈for循环里面的break和continue语句
2017/07/20 Javascript
让bootstrap的carousel支持滑动滚屏的实现代码
2017/11/27 Javascript
Vue2仿淘宝实现省市区三级联动
2020/04/15 Javascript
使用pm2部署node生产环境的方法步骤
2019/03/09 Javascript
vue本地打开build后生成的dist文件夹index.html问题
2019/09/04 Javascript
vue内置组件keep-alive事件动态缓存实例
2020/10/30 Javascript
微信小程序实现通讯录列表展开收起
2020/11/18 Javascript
vue-router路由懒加载及实现的3种方式
2021/02/28 Vue.js
python密码错误三次锁定(实例讲解)
2017/11/14 Python
使用WingPro 7 设置Python路径的方法
2019/07/24 Python
python3.6中@property装饰器的使用方法示例
2019/08/17 Python
python制作英语翻译小工具代码实例
2019/09/09 Python
Python matplotlib绘制饼状图功能示例
2019/09/10 Python
Pandas时间序列:重采样及频率转换方式
2019/12/26 Python
Django crontab定时任务模块操作方法解析
2020/09/10 Python
详解HTML5 data-* 自定义属性
2018/01/24 HTML / CSS
环境科学专业个人求职信
2013/09/26 职场文书
节约用水倡议书
2014/04/16 职场文书
师德标兵先进事迹材料
2014/12/19 职场文书
2016年六一文艺汇演开幕词
2016/03/04 职场文书
浅谈Redis跟MySQL的双写问题解决方案
2022/02/24 Redis