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文件操作实例代码
May 10 PHP
php实现文件下载实例分享
Jun 02 PHP
CI框架自动加载session出现报错的解决办法
Jun 17 PHP
php下Memcached入门实例解析
Jan 05 PHP
PIGCMS 如何关闭聊天机器人
Feb 12 PHP
php实现短信发送代码
Jul 05 PHP
PHP编程入门的基本语法知识点总结
Jan 26 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
Apr 21 PHP
php 三大特点:封装,继承,多态
Feb 19 PHP
ajax+php实现无刷新验证手机号的实例
Dec 22 PHP
laravel框架模板之公共模板、继承、包含实现方法分析
Aug 30 PHP
PHP实现页面静态化深入讲解
Mar 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
PHP 读取大文件的X行到Y行内容的实现代码
2013/06/24 PHP
64位windows系统下安装Memcache缓存
2015/12/06 PHP
PHP面向对象程序设计之对象的遍历操作示例
2019/06/12 PHP
用js自动判断浏览器分辨率的代码
2007/01/28 Javascript
js仿百度有啊通栏展示效果实现代码
2013/05/28 Javascript
jQuery 借助插件Lavalamp实现导航条动态美化效果
2013/09/27 Javascript
JavaScript AOP编程实例
2015/06/16 Javascript
Bootstrap模块dropdown实现下拉框响应
2016/05/22 Javascript
jQuery删除当前节点元素
2016/12/07 Javascript
bootstrapValidator.min.js表单验证插件
2017/02/09 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
2017/06/12 Javascript
解决vue-cli创建项目的loader问题
2018/03/13 Javascript
Vue 去除路径中的#号
2018/04/19 Javascript
React 项目迁移 Webpack Babel7的实现
2018/09/12 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
2020/10/24 Javascript
[00:38]TI珍贵瞬间系列(二):笑
2020/08/26 DOTA
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
2008/09/06 Python
python批量修改文件后缀示例代码分享
2013/12/24 Python
Django基础之Model操作步骤(介绍)
2017/05/27 Python
Python中optparser库用法实例详解
2018/01/26 Python
python实现图像识别功能
2018/01/29 Python
Python实现一个服务器监听多个客户端请求
2018/04/12 Python
python数据化运营的重要意义
2019/11/25 Python
Python文本处理简单易懂方法解析
2019/12/19 Python
pytorch判断是否cuda 判断变量类型方式
2020/06/23 Python
网易微博Web App用HTML5开发的过程介绍
2012/06/13 HTML / CSS
匡威德国官网:Converse德国
2019/01/26 全球购物
教师自我鉴定范文
2013/11/10 职场文书
物流专业大学的自我评价
2014/01/11 职场文书
幼儿园消防演练方案
2014/02/13 职场文书
护士求职信
2014/07/05 职场文书
创先争优个人承诺书
2014/08/30 职场文书
员工年终考核评语
2014/12/31 职场文书
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL