我有一份长期的工作来填写数据库中的表格。这项工作可能需要不同的时间才能完成。所以,我需要一个进度条。只计算页面就足够了。到目前为止,我找到了几种解决方案:
- 使用 _SESSION。好的,它适用于我使用的大多数服务器,但我在 chrome 上的 ERR_RESPONSE_HEADERS_TOO_BIG 错误有很多问题,有时 - 某些服务器上的“标头已发送”,由循环中调用的 session_start/session_write_close 引起。我喜欢这种方法,但现在我拒绝了
- 在长操作的循环中使用一种 ob_start/ob_end_flush。这行不通。它只是在脚本结束后显示所有缓冲的回显消息。
- 使用 db 存储共享变量(尚未尝试)
- 使用单独的(临时)文件。(尚未尝试)。
我已经实现了基础架构:一个用于长时间作业的脚本(在 db 中填充表)和另一个由 JS 用于读取包含进度状态的共享变量的脚本。我用 jQuery .ajax 方法调用的这两个脚本都期望在 .done 函数中得到结果。
还有其他方法吗?似乎我想使用 4) 变体,但我想知道实现进度条的通常做法是什么。
谢谢:)