使用AJAX响应终止并发请求

时间:2011-09-24 03:40:06

标签: php javascript jquery ajax

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

脚本 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);
});

脚本 back-end.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);

如何在脚本front-end.php上获取$ id,以便我可以在发出下一个进程后立即终止服务器上的上一个进程?

1 个答案:

答案 0 :(得分:1)

您需要将此进程ID保存在两个不同请求共有的位置。类似于文本文件,db表或后端的memcache。因此,例如,第一个php请求启动您的进程,然后将进程ID写入文件,如current_id.txt。然后第二个请求检查该文件的id,然后杀死该进程,然后在杀死后清空current_id.txt。

如果您需要在许多用户之间复制它,您必须有办法识别它与会话变量或会话ID本身是同一个人,并创建像<session_id>_process_id.txt这样的文件,以便每个唯一用户可以相互独立地做到这一点。