【发布时间】:2012-08-01 10:21:23
【问题描述】:
好的,情况就是这样——简单明了:
-
在页面 A 上:我们执行一个 ajax 请求(假设是
intermediate.php),它会启动一个后台进程 - 假设是back.php -
interm.php返回 -
back.php一直工作直到完成,同时在数据库中更新其进度。
那么,页面 A 怎么会收到 back.php 已完成的通知?
(我曾想过例如每 1-2 秒向脚本发出一个 ajax 请求,以检查数据库中 back.php 的进度,但这看起来很奇怪,而且绝对没有效率......)
有什么想法吗?
【问题讨论】:
-
ajax 调用是异步的,因此将 PHP 脚本作为后台进程运行并没有真正的好处。难道你不能以常规方式运行它,并保持 xmlHTTPrequest 打开直到 PHP 脚本完成,并返回一些东西(PHP 中默认允许 30 秒保持连接打开)??
-
@adeneo 1) 我的脚本可能需要运行 2-3 分钟以上。 2)脚本被分成各种子任务(所以我想通知用户进度 - 例如,X完成了2个)。 3) 显然,我必须知道整件事什么时候完成。 :-)
标签: php javascript jquery ajax