如何通过jQuery(ajax)跟踪提交给服务器的请求的进度


How to track progress of request submitted to the server via jQuery (ajax)?

我有一些PHP应用程序。目前,我正在开发用户通过ajax(jQuery)向服务器提交请求/表单的部分。服务器将在MySQL数据库中插入数千条记录,这可能需要几分钟的时间(由于各种计算等)。

问题:有没有一种方法可以跟踪服务器端的更新进度?我知道一旦一切都完成了,我可以写一些输出。解决方法如下:-将会话ID和进度详细信息存储在某处(例如:已处理5k中的3k个插入-可能在数据库中的某个进度表中-前端jQuery脚本每隔10秒左右从服务器请求该信息…

有什么想法吗?请随时提出任何问题。非常感谢。

虽然我不知道你在服务器端做什么的细节,但一个需要"几分钟"执行的脚本可能涉及几个不同的步骤。让脚本一次执行一步,返回结果,然后再次被调用以执行下一步,这可能是有意义的。

通过使用这样的流程,您将能够在客户端跟踪进度。需要注意的是,如果客户端关闭浏览器窗口或留下带有ajax代码的页面,则不会执行其余步骤。