使用AJAX响应终止并发请求

Using AJAX Response to Terminate a Concurrent Request

本文关键字:并发 请求 终止 响应 AJAX 使用      更新时间:2023-09-26

假设我从jQuery向后端PHP脚本发出AJAX HTTP请求,该脚本在MySQL服务器上执行一些查询。在发出请求时,我想重新生成一个新请求,并在服务器端终止当前请求。

Script front-end.php包含:

function process(json) {
 // iterate and display result
}
google.maps.event.addListener(map, 'idle', function () {
 ....
 $.getJSON('back-end.php?id=$id&bounds=$bounds', process);
});

Script backend .php包含:

$id = // get current MySQL process id
// check and send request to terminate previous process if id is set
// send request to get data based on bounds criteria
echo json_encode(data);

我怎么能得到$id到脚本前端。php,以便我可以终止服务器上的前一个进程,只要我发出下一个?

您需要将此进程id保存在两个不同请求的公共位置。比如在文本文件、数据库表或后端memcache中。例如,第一个php请求启动您的进程,然后将进程id写入一个文件,如current_id.txt。然后第二个请求检查这个文件的id,然后杀死进程,然后在杀死后清空current_id.txt。

如果您需要在许多用户之间可复制,则必须有一种方法来识别它是具有会话变量或会话id本身的同一个人,并创建像<session_id>_process_id.txt这样的文件,以便每个唯一用户可以相互独立地执行此操作。