Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何获得Ajax请求进度?_Jquery_Ajax_Cakephp - Fatal编程技术网

Jquery 如何获得Ajax请求进度?

Jquery 如何获得Ajax请求进度?,jquery,ajax,cakephp,Jquery,Ajax,Cakephp,我正在开发一个用CakePHP构建并在其中使用jQuery的项目。我有一个需要通过ajax请求调用的脚本。此请求在数据库中执行了许多操作,占用了太多时间。在执行之间,它将其状态写入一个单独的文件中,以便我可以看到脚本执行的状态。每次打开文件时,在其中写入执行状态,然后关闭文件,以消除文件锁定问题 现在,当这个脚本正在进行时,我将发送另一个ajax请求,该请求只是读取该文件,并在每20秒后周期性地获取内容。现在的问题是,当第一个ajax请求忙于mysql时,对服务器的任何其他请求都将暂停。Mysq

我正在开发一个用CakePHP构建并在其中使用jQuery的项目。我有一个需要通过ajax请求调用的脚本。此请求在数据库中执行了许多操作,占用了太多时间。在执行之间,它将其状态写入一个单独的文件中,以便我可以看到脚本执行的状态。每次打开文件时,在其中写入执行状态,然后关闭文件,以消除文件锁定问题
现在,当这个脚本正在进行时,我将发送另一个ajax请求,该请求只是读取该文件,并在每20秒后周期性地获取内容。现在的问题是,当第一个ajax请求忙于mysql时,对服务器的任何其他请求都将暂停。Mysql创建所有这些请求的进程,并将此请求置于睡眠模式。我认为这是由于框架的原因,因为每个请求框架都需要检查数据库。当第一个主脚本完成时,所有其他请求也将完成。

有什么方法可以让我获得ajax的进展吗??如果我在某个地方错了,请纠正我。。。!!!提前感谢。

如果您使用jQuery满足Ajax需求,您可能需要查看$.Ajax方法的“async”选项。在我看来,您希望根据当前正在处理的请求显示进度。现在,这有一个缺点,它将锁定您正在做的任何其他事情,但它将正确显示每个“线程”的进度。我不熟悉蛋糕,因为我用的是Kohana。 现在,mysql不太可能让某些东西“休眠”,而是让它们排队。
这里没有真正的“进度”,我建议使用$.ajaxStart或$.ajaxStop(jquery中的任何名称),一旦从服务器收到响应,就可以隐藏进度元素

我做到了。我只需要调用读取文件的脚本,然后从一个单独的php文件返回数据。不需要调用框架

是的,你是对的,我只是想展示我的第一个ajax请求的进度。这个脚本迭代超过10000条记录,我只想向用户显示脚本当前正在执行的记录。在第一个请求之后,任何其他请求都在mysql中创建一个进程。我通过mysql中的“showProcessList;”命令检查它是否创建了一个进程,并将睡眠状态放在命令列中。我已经显示了“请等待脚本正在进行…”消息,但我只想向用户显示实际的进程状态。