所以这个问题有点复杂,让我解释一下。我的页面代码是这样运行的:
用户在搜索字段中输入查询并单击提交。
1.1 jQuery 加载一个新的 body 来显示进度数据。
1.2 jQuery 通过 AJAX 调用 process.php 并提供查询作为参数。
1.3 jQuery 启动 setInterval 定期更新以获取进度数据,存储在 $_SESSION['prog'] 中,并显示出来。
当 process.php 完成时,jQuery 停止定期更新,显示最终信息并调用 AJAX 来清除 $_SESSION['prog'] 变量。
目前进度数据存储在一个变量中,就不同的用户而言这很好(因为不同的会话),但如果同一个用户要同时发出多个请求,$_SESSION['prog '] 变量将被交叉覆盖。
到目前为止,我已经想到了两种可能性来区分来自同一用户(同一会话)的每个请求的数据
让 jQuery 生成一些随机字符串并将其与查询一起发送(并希望避免冲突,尽管这不太可能)
进行 2 个 AJAX 调用,第一个请求 new_request_id,第二个发送查询和 new_request_id 作为参数。
在完成(完成)之前让 AJAX 从 PHP 返回一些东西。
我需要将每个浏览器窗口(每个请求)与每个正在运行的进程连接起来,因此在提交请求后我无法发回新的请求 ID,因为我不知道在浏览器窗口中使用 jQuery 获取哪些数据。顺便说一句,我会将 $_SESSION['prog'] 更改为 $_SESSION[request_id] -> request_id 是我正在寻找的。
它(request_id)可能是last_insert_id(),因为我为每个有效查询创建新的数据库条目,但我不知道如何将它返回到每个不同的用户窗口。
我需要这里的建议。刚开始用 PHP、AJAX 和 jQuery 编写代码,对会话不太了解。我应该如何解决这个问题?
抱歉缺少代码,我会根据要求粘贴。