相关文章推荐
要出家的台灯  ·  uni-push2.0 常见问题 - ...·  5 天前    · 
含蓄的薯片  ·  小米电视去广告 | 埃米的博客·  4 天前    · 
想出国的钱包  ·  国内首批!上海CA ...·  3 天前    · 
年轻有为的香烟  ·  浏览器事件开发者社区·  2 天前    · 
细心的沙滩裤  ·  ipa软件下载|ios软件下载·  昨天    · 
酷酷的黄花菜  ·  阿尔法军团-哔哩哔哩_Bilibili·  8 月前    · 
冷静的鞭炮  ·  天海祐希_百度百科·  8 月前    · 
唠叨的豆芽  ·  唐三小舞现身神界,霍雨浩建模帅出新高度,女主 ...·  1 年前    · 
月球上的西红柿  ·  #插画# #美术# ...·  2 年前    · 
斯文的杯子  ·  黎巴嫩外长批评一些欧美国家阻碍黎遣返叙利亚难 ...·  2 年前    · 
Code  ›  PHP中的echo即时输出开发者社区
echo 软件
https://cloud.tencent.com/developer/article/1577696
豪爽的热水瓶
2 年前
作者头像
C4rpeDime
0 篇文章

PHP中的echo即时输出

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 黑白安全 > PHP中的echo即时输出

PHP中的echo即时输出

作者头像
C4rpeDime
发布 于 2020-01-19 17:41:08
1.6K 0
发布 于 2020-01-19 17:41:08
举报

web开发中有没有碰到需要适时的将结果输出到浏览器页面而不刷新整个页面的需求呢?当你在处理一个过程需要耗时很长,但你又需要适时的知道程序当前的处理状况的时候,该怎么办呢?下面就分享一下如何使用php及时的输出当前结果到浏览器而不刷新整个页面的效果吧。

PHP简单的输出代码

for($i=0;$i<10;$i++){
    echo $i;
    sleep(1);}

上面这段程序如果在PHP解释器中执行,每秒会输出一个数,和预计效果一样。但在浏览器中访问时,结果却是浏览器在十秒之后一次性地显示了所有结果。对于这个问题,我们可以使用 ob_flush() 和 flush() 来强制刷新浏览器缓存,程序改为:

for($i=0;$i<10;$i++){
    echo $i;
    ob_flush();
    flush();
    sleep(1);}

问题解决,但又出来个问题,浏览器还不兼容了。实际测试中只有 Firefox 按预计效果即时输出了结果,而在 IE  Safari Opera 等浏览器中还是一次性的输出结果。查阅相关资料发现是因为不同的浏览器对缓冲的处理方式不同,Firefox 在被要求强制刷新缓存时很听话,而IE需要在接收到256个字节后才会将内容即时展现在界面上,Safari 需要1024个字节,Opera 更有个性,只有在遇到HTML标签的时候才会即时输出(Safari也是如此)。

加入空间字符适配IE

对于以上问题,针对IE和Safari,可以在输出结果之前先输出大于限定数目的空白字符:

echo str_repeat(" ",1024);for($i=0;$i<10;$i++){
    echo $i;
    ob_flush();
 
推荐文章
要出家的台灯  ·  uni-push2.0 常见问题 - DCloud问答
5 天前
含蓄的薯片  ·  小米电视去广告 | 埃米的博客
4 天前
想出国的钱包  ·  国内首批!上海CA 根证书获得奇安信、麒麟软件、统信软件联合信任 -新闻动态-上海市法人一证通
3 天前
年轻有为的香烟  ·  浏览器事件开发者社区
2 天前
细心的沙滩裤  ·  ipa软件下载|ios软件下载
昨天
酷酷的黄花菜  ·  阿尔法军团-哔哩哔哩_Bilibili
8 月前
冷静的鞭炮  ·  天海祐希_百度百科
8 月前
唠叨的豆芽  ·  唐三小舞现身神界,霍雨浩建模帅出新高度,女主建模却改了
1 年前
月球上的西红柿  ·  #插画# #美术# 钟爱复古风头像手绘 . 人物插画、漫画师 . amusement01 - 知乎
2 年前
斯文的杯子  ·  黎巴嫩外长批评一些欧美国家阻碍黎遣返叙利亚难民_新闻频道_央视网(cctv.com)
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号