我想就如何实施以下内容提出一些建议:
我想让我的用户了解通过AJAX在我的服务器上运行的任务的进度。我的服务器运行一个PHP脚本,使用popen函数通过shell命令下载文件。它定期回声/打印正在发生的事情。我想使用AJAX捕获此输出并将其呈现给用户。
我在另一个问题中被告知我可能需要使用民意调查或彗星?我非常感谢有关如何以最简单和最有效的方式实现这一目标的任何帮助或指导。希望我仍然可以使用JQuery。
感谢大家花时间阅读本文。
P.S。感谢stackoverflow社区,我能够做到这一点。:)
答案 0 :(得分:2)
这听起来像是 Ajax长轮询的绝佳机会,这是一般Comet实现中使用的无数技术之一。有another question on Stack Overflow的示例代码。
答案 1 :(得分:2)
Jim Puls发布的链接是一个很好的起点。这个问题中的很多用户提供了很多有关Comet民意调查的信息。 PHP。我见过的大多数地方都建议使用python twisted来完成这项任务。
此外,这里有一些链接:
Responsive AJAX applications with COMET
And Another HTTP Streaming AjAx Pattern Article
根据进度条的“必要”程度,我可能会在最后提到的路线gs。如果它只是一个功能,可以帮助用户意识到它比通常需要花费更多的时间来处理,那么使用估计“欺骗”它们比实时轮询容易得多。
答案 2 :(得分:1)
我只是使用常规轮询而不是彗星,因为这更像是一个黑客。为了使用户界面更加流畅,您可以作弊并更新进度条而无需检查服务器,只需计算执行任务所需的平均时间即可。您可以通过轮询正确的状态来更正错误。如果你做得好,每个人都会认为它是实时更新。