PHP& jQuery ajax调用无需等待响应

时间:2013-04-03 23:37:55

标签: php jquery sql ajax

我正在努力解决问题。

我有一个PHP页面,它使用jQuery $.ajax对另一个页面进行ajax调用。它将请求异步发送到处理页面,然后处理页面返回响应。

现在可以正常工作,但是我们正在对后端进行一些更改,并且运行的处理(SQL存储过程)现在需要更长时间,超过5分钟。等待很好,因为我们正在处理SQL中接近200MM的记录。

问题是我需要能够将请求发送到处理页面而不必等待响应。处理页面在PHP中触发存储过程,如下所示:

            $query = $dbh2->prepare('exec sp_name :countID');
            $query->bindParam('countID', $countID);
            $query->execute();

现在,存储过程需要一段时间才能运行,我们不需要将结果呈现给用户。虽然有一些额外的PHP代码需要在存储过程之后运行,但是不需要再发送回浏览器。

我试图找出一种方法,我可以调用处理页面,它运行存储过程和其他代码,但用户的浏览器不需要等待响应。现在,如果尝试过快地点击页面,它基本上会锁定浏览器一段时间并且没有完成处理。

对此的任何见解都会很棒。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

Sequenzia,如果我理解正确的话,那么经过大量的研究,我已经在这里找到了解决这个泥潭的方法。

几个月前,我提供了一个类似问题的答案。不幸的是,OP或其他任何人都没有接受/评论/上调/下调 - nada。

以下是一些有用的参考资料:

运行后台脚本(unix命令)

如何撰写PHP $ shortopts和$ longopts

这是解释从命令行运行时传递给PHP脚本的参数的方法,或者是使用shell-exec()的其他PHP脚本

答案 1 :(得分:0)

您可能会考虑为timeout方法设置$.ajax()选项。通过设置超时可能是半秒或者其他什么,ajax只会超时并进入错误处理程序(如果有的话)。