Re: [请益] post 接收页面做进度条

楼主: chaoms (小企鹅)   2014-03-29 15:01:25
※ 引述《newvalentine (haha)》之铭言:
: 有办法在 post 接收页面做进度
: 读取条吗?
: Google 一下没有资料
: 还请各位大大解惑
: 感谢大家!
这个要看处理什么东西来作吧~
大家说的部份是指时间很短暂~用gif骗骗使用者处理中就好
如果是处理时间很长~如三十秒还是一分钟以上~
可以将资料处理 POST 到 iframe内~
开始处理就将处理进度的 javascript 直接 flush 出来
javscript内容就是变更处理进度的显示
iframe处理时就是吐出处理多少进度的javascript
处理完毕就flush出来给client端
如:
// 资料处理99%的时候
echo "<script>
parent.document.getElementById('proc').style.width = '99px';
</script>";
ob_flush();
而送出页大概就是置放进度条来被变更
<div id=proc style='background-color:#99ffcc;'></div>
作者: danny8376 (钓到一只猴子@_@)   2014-03-30 20:52:00
这作法几乎不可行www 现实production环境几乎都有buffer
楼主: chaoms (小企鹅)   2014-03-31 07:12:00
楼上请查flush 或 ob_flush的作用喔!
作者: danny8376 (钓到一只猴子@_@)   2014-03-31 09:30:00
中间还有apache fastcgi之类这一堆呢 buffer可不只有一层而已 更别说有的还有haproxy varnish一堆的光是现在很常见的php-fpm就已经关不掉buffer行为了
楼主: chaoms (小企鹅)   2014-03-31 18:14:00
噗…server push的应用不致于消失喔!
作者: danny8376 (钓到一只猴子@_@)   2014-03-31 19:15:00
楼上... comet的做法早没啥人在用了好吗...现在主流是long polling 不然直接上websocket了
楼主: chaoms (小企鹅)   2014-03-31 22:03:00
噗~设计领域不该有非黑即白的观念~应用只有这种吗?你说的主流是否十几年前就可以应用了?SO..分享设计原理~只是多一种选择囉!
作者: danny8376 (钓到一只猴子@_@)   2014-03-31 22:31:00
所以我也只说这在production上很容易死啊尤其是虚拟主机 架构部分你想动也动不了的而且当年不偏好buffer 因为当时网络慢所以原则是能先送多少先送多少不然使用者要好几秒才能载完一页

Links booklink

Contact Us: admin [ a t ] ucptt.com