【问题标题】:How to make progress bar with jQuery and PHP while waiting server process?等待服务器进程时如何使用jQuery和PHP制作进度条?
【发布时间】:2013-09-11 08:08:27
【问题描述】:

当 Google 提供许多指向 Stackoverflow 的准确结果时,过去很容易找到我的问题的解决方案。但是,我没有找到一个解决这个问题的。如果你们有任何建议我应该去哪里解决这个问题,请给我答案的链接。

案例是我想从数据库中创建搜索索引。 索引过程由jQuery.getJSON 触发。完成需要几分钟,所以我想制作进度条来显示索引过程。我知道如何使用.getJSON 作为客户端和 PHP 作为服务器端来发出常见的 ajax 请求,但我似乎很难想象如何制作这样的进度条。

有没有机构可以向我解释如何做到这一点?

【问题讨论】:

标签: php jquery ajax


【解决方案1】:
  1. 检查 Jquery 进度条 UI:http://jqueryui.com/progressbar/
  2. 每 10 秒使用 .getJSON 或 ajax 调用调用服务器并检查进度
  3. 在获得服务器进度后更新 UI

解释第二步

第 2 步通常基于您的应用程序流程,例如我在 MYSQL 中插入 100,000 条记录,我将创建另一个服务来检查行数,例如结果为 30,000 条记录,这意味着进度现在是 30%,所以如果我每 10 秒调用一次这个服务,我就会得到当前的进度。

【讨论】:

  • 你能详细解释一下第 2 步吗? ajax和服务器之间的通信是怎样的?涉及哪些数据?
  • 我使用 codeigniter 和 zend lucene 搜索索引。服务如何知道索引了多少行?
【解决方案2】:

您可以从长时间运行的脚本中输出 javascript:

while(doThings()) {
    echo '
<script> updateProgress("' . $x .'%");</script>';
    flush();
}

我个人使用引导程序:http://getbootstrap.com/components/#progress

【讨论】:

  • 使用什么样的进度条并不重要。不过感谢您的快速响应。
猜你喜欢
  • 2010-11-16
  • 1970-01-01
  • 2012-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-13
  • 1970-01-01
相关资源
最近更新 更多