我有一个网站,该网站的Ajax请求运行时间长,当用户仍在与该网站进行交互并发出其他请求时,该请求“在后台”发生。
由于会话锁定,我不想长时间运行的Ajax请求阻止其他页面。
页面在CMS中运行,该CMS在请求开始时启动会话,并在请求结束时关闭会话。
在长时间运行的页面中,我可以在完成所有长时间运行的工作之前使用session_write_close(),然后再进行session_start()(以释放会话锁)。但是,问题在于,如果在此期间有任何其他请求写入会话,则其工作将被覆盖。有没有一种方法可以启动会话,但是同时将所有写入的$ _SESSION变量重新加载?
示例(长时间运行的请求为A,短期请求为B):
在这种情况下,请求B的更改将被覆盖。有没有办法让请求A可以重新加载会话变量(在上面的#6)?