我正在使用PHP+Ajax开发一个网站。我必须发射一个ajax请求,可能需要很长时间来处理(约5分钟),我不需要从这个请求的任何响应,所以用户应该可以自由导航到我的网站,而服务器正在后台执行这个ajax请求。
我的代码:
//I can easly lunch the ajax request
$.ajax({
type: 'GET',
url: "myurl.php",
async: true,
success: function (data) {}
}); 这个脚本运行良好,但如上所述,它需要几分钟才能完成,而在此期间,用户无法打开我的域的任何页面。看起来我的浏览器在等待响应时被锁定了。
目前,要“解锁”我的浏览器,我有以下解决方案:
-restart我的web服务器
-restart浏览器
-wait,直到脚本完成
有没有什么能触发“幽灵”ajax请求的把戏?
(ghost表示我不想等待响应)
我尝试触发请求,然后调用abort()函数,但它中止了所有请求以及PHP脚本的执行。
有什么建议吗?
PS。我用Firefox8、Chrome15.0和IE9进行了测试
发布于 2011-12-03 23:07:07
如果您在后台脚本中使用会话,则应在处理完会话变量后调用session_write_close,因为在任何给定时间,一个会话都不能由多个脚本打开。
发布于 2011-12-03 23:13:38
你可以用不同的方式来做,例如。使用简单队列:
通过这种方式,用户可以毫无问题地浏览您的站点,您甚至可以通过在过程中更新数据库,向用户提供您需要的进度。
https://stackoverflow.com/questions/8368531
复制相似问题