我正在使用PHP + Ajax开发一个网站。 我必须发出一个可能需要很长时间才能处理的ajax请求(大约5分钟),我不需要来自此请求的任何响应,因此用户应该可以在服务器执行此ajax请求时自由导航到我的网站背景
我的代码:
//I can easly lunch the ajax request
$.ajax({
type: 'GET',
url: "myurl.php",
async: true,
success: function (data) {}
});
这个脚本工作正常,但据说在完成之前需要几分钟,而在此期间用户无法打开我的域的任何页面。看起来我的浏览器已锁定,等待响应。
在“解锁”我的浏览器的那一刻,我有以下解决方案:
-restart我的网络服务器
- 重新启动浏览器
- 等到脚本完成
是否有一个技巧或某些东西引发“鬼”ajax请求?
(幽灵意味着我不想等待回应)
我尝试触发请求而不是调用abort()函数,但它会中止所有请求以及PHP脚本的执行。
任何提示?
PS。我用Firefox 8,Chrome 15.0和IE9进行了测试
答案 0 :(得分:2)
如果您在后台脚本中使用会话,则应在完成会话变量处理时调用session_write_close
,因为在任何给定时间都无法通过多个脚本打开会话。
答案 1 :(得分:0)
你可以做不同的方式,例如。简单队列:
通过这种方式,用户可以毫无问题地浏览您的站点,您甚至可以通过在进程中更新db来为用户提供在需要时完成的进度。