Php 多个文件同时访问会话

Php 多个文件同时访问会话,php,javascript,jquery,ajax,session,Php,Javascript,Jquery,Ajax,Session,因此,我有一个php文件,它运行一组针对ID列表的sql查询。此文件可能需要一些时间才能运行 当它运行时,我想要一个进度条 我拥有它,以便运行文件更新一个会话变量,该变量指示每组查询后的完成百分比。然后在我的前端,我对另一个文件进行ajax调用,该文件读取会话变量值并返回它。然后用返回的百分比更新progressbar填充的宽度 问题是: 在完成所有查询之前,进度条不会更新。所以我看到我的进度条在0%的状态下持续了几秒钟,然后突然跳到100%。在脚本完成之前,会话似乎一直处于锁定状态。我尝试使用

因此,我有一个php文件,它运行一组针对ID列表的sql查询。此文件可能需要一些时间才能运行

当它运行时,我想要一个进度条

我拥有它,以便运行文件更新一个会话变量,该变量指示每组查询后的完成百分比。然后在我的前端,我对另一个文件进行ajax调用,该文件读取会话变量值并返回它。然后用返回的百分比更新progressbar填充的宽度

问题是: 在完成所有查询之前,进度条不会更新。所以我看到我的进度条在0%的状态下持续了几秒钟,然后突然跳到100%。在脚本完成之前,会话似乎一直处于锁定状态。我尝试使用session_write_close(),但无法使其工作


谢谢。

我遇到了类似的问题,会话解决方案不起作用。我的解决方案是将当前状态写入一个临时的.txt文件,然后使用ajax调用读取该文件。

这样做的问题是会话变量在运行时没有存储。他们将等到脚本完成后再将变量存储到会话中。一种解决方案是将进度临时存储在数据库或文件中,并使用AJAX定期访问数据


另一个解决方案是使用服务器端javascript,并根据您的进度触发事件。然后,您的页面将根据触发的javascript事件进行更新。

在会话运行时,PHP中的会话文件将被锁定。因此,从
session\u start()
session\u write\u close()
。请参阅,以及与此主题相关的许多其他内容。因为它是会话,你需要用它来摆弄它。