Ajax PHP后台请求


Ajax PHP background request

我正在Windows7计算机上的IIS中运行一个测试站点。

我正在向服务器发送一个ajax请求以运行,我知道它正在运行,因为我正在数据库中保存这方面的记录。

一旦我开始运行流程,我希望能够离开页面,让脚本继续运行。

当我启动脚本并从导航中选择不同的页面时,我的浏览器会停止ajax请求(脚本仍在服务器端运行),但在服务器端脚本运行完成之前,不允许浏览器重定向。

我正在使用:

$.post('path_to_script',{key:val},function(data){});

在我的jQuery文件中调用脚本,在我的php脚本中我使用:

ignore_user_abort(true);
set_time_limit(0);

正如我在这里的其他帖子中看到的建议。

我是不是错过了什么,因为这是我第一次尝试运行后台进程?

我认为这是会话问题。您的path_to_script脚本启动会话,在关闭会话之前,没有其他php脚本可以打开会话。由于中止请求不会停止ajax脚本,因此补救措施是尽快关闭会话。

这是一个前端问题。基本上,您必须在页面卸载时取消ajax请求。php脚本本身将在后台中继续运行

var ajax_request = $.ajax(...); 
$(window).unload( function () { ajax_request.abort(); } );