时间:2021-07-01 10:21:17 帮助过:17人阅读
可能有一点没有说明白,实时的进度显示,实在当前脚本执行中,比如上面说的循环100次,那么每次循环都要返回给前台当前的循环次数,再通过js改变进度条长度,以此来实现进度,能实现吗?
如题,比如我后台要循环一百次,在前台需要一个进度条,实时的显示循环的进度,这个用php是怎么实现的,请教各位大神,谢谢!
可能有一点没有说明白,实时的进度显示,实在当前脚本执行中,比如上面说的循环100次,那么每次循环都要返回给前台当前的循环次数,再通过js改变进度条长度,以此来实现进度,能实现吗?
看懂ajax不就知道了…
写个PHP,访问时输出当前的进度百分比。前台javascript发ajax访问这个PHP,解析数字修改前台某元素宽度
这要是看不懂那就没办法只好上个垃圾代码供你参考了
loop.php for($i=0;$i<1000;$i++){ do_something(); file_put_contents("progress.log",$i); }
ajax.php echo file_get_contents("progress.log")
javascript的不用我给吧?
我知道的有三种方式。
一、定期轮训后台进度,不过会产生频繁的ajax请求。
二、使用comet push内容的前台。我以前有做过一种方式。使用一个隐藏的iframe来模拟长连接。然后定期flush脚本到前台改变进度条。
可以参考一些网上的文章:
http://en.wikipedia.org/wiki/Comet_(programming)
http://www.iteye.com/topic/841554
三、尝试下nodejs + socket.io,通过socket.io让后台定期push进度到前台。