靠谱的软件下载站
当前位置:  IEfans/IE专区/IE相关/IE浏览器下PHP缓冲控制的问题

IE浏览器下PHP缓冲控制的问题

IE相关 互联网 2010-01-12 阅读(1865)
写程序的时候遇到一个问题,就是我用PHP控制浏览器缓冲,代码在IE6浏览器上试了N次都无法实现想要的效果,但是在火狐浏览器下却可以实现,后来又去IE8浏览器上测试了一下,IE8的输出也没有问题的,看是只有IE6没有办法正常执行代码。不得不说为什么每次都是IE6的问题呢?具体程序见下面的代码: ".$i; flush(); sleep(1); } ?> 上面这段程序是实现每隔1秒钟在浏览器上输出一个字符,但实际效果是程序执行完后才把所有字符输出到浏览器上,调试了好几次都不行。在网上搜索了N个技术文章都没有解决这个问题。最后从一篇文章上找到些灵感,那篇文章里写到flush()函数可能在微软IE浏览器的个别版本上不起作用。 于是我用我的FireFox浏览器试了一下,果然立即出现了我想要的效果,我的浏览器是IE6,经过查阅相关资料,得知,IE的某些版本只有在字符串缓冲到256字节的时候才会将缓冲内容输出到浏览器上。然后放到IE8浏览器上测试一下,也是没有任何问题的。 根据这个特点,我修改了一下我的程序,结果得到了预期的效果,具体代码如下: ".$i.str_repeat(" ",256); //修改 ob_flush(); //修改 flush(); sleep(1); } ?> 在想要输出的字符串后加上256个空格,使字符串长度达到IE浏览器所规定的缓冲长度,再用ob_flush()函数配合flush()函数来将缓冲内容输出到浏览器上,这样基本上所有的浏览器就都可以正常得到预期的效果了。 这个问题让我捣鼓了2个多小时,诶,IE6让我怎么才能不放弃你呢! 虽然这个问题看似小问题,但是有时候却会困扰我们很久,有了这次经验不敢独享,贴上来和各位一起分享,希望在大家的开发过程中如果遇到类似问题可以帮上忙!

标签:IE相关IE浏览器PHP缓冲

Copyright © 1998-2017 www.iefans.net All Rights Reserved 湘ICP备13012168号-17