根据要执行的程序,可以使用proc_open()代替exec(),因此可以处理输出,计算百分比,然后使用ob_flush()和flush()将其扔回到ajax脚本中。
在发送任何输出之前,您不需要等待执行完成是不正确的,但是服务器缓存配置和浏览器呈现引擎存在一些警告,因此并不是那么可靠。
如果您不使用Websockets(干净而现代的选项,可以通过使用Ratchet的 PHP 或使用各种选项的nodejs 来实现),则最可靠的方式是轮询。
简要地说,您无需执行一次脚本调用,而是执行第一个ajax请求来初始化进程,然后一次又一次地戳服务器以询问脚本的执行状态。
有关更多信息,请查看以下答案:
| 归档时间: |
|
| 查看次数: |
4868 次 |
| 最近记录: |