我正在使用其exec()
函数在PHP中运行外部脚本。我正在寻找各种选项来创建进度条。我能够通过AJAX创建一个普通的旋转加载器,但我无法实现百分比进度条。有没有办法做到这一点?
答案 0 :(得分:5)
根据您要执行的程序,您可以使用proc_open()而不是exec()
,这样您就可以使用{{3来处理输出,计算百分比并将其返回到ajax脚本}和ob_flush()。
在发送任何输出之前你需要等待执行完成是不正确的,但是你的服务器缓存配置和浏览器渲染引擎有一些警告,所以它不那么可靠。
如果你没有使用Websockets(干净和现代的选项,可以通过PHP使用flush()或使用nodejs使用各种选项实现),那么最可靠的方法就是使用轮询进行操作。
简单地说,不是一次调用你的脚本,而是先做一个ajax请求来初始化进程,然后再次开始戳服务器来询问你脚本的执行状态。
有关详细信息,请查看以下答案:
答案 1 :(得分:0)
PHP在服务器上运行,因此无法实现这一点(据我所知), 以下是一些可以帮助您的已回答的问题。
How to show loading status in percentage for ajax response?
Jquery:: Ajax powered progress bar?