异步ajax请求锁定浏览器

时间:2014-11-03 10:41:11

标签: javascript ajax asynchronous browser locking

这是一段简单的代码片段,用于启动 aynchronous ajax请求。 请求的处理时间故意长(10秒或更长)。

为什么浏览器会阻止我的用户在异步请求过程中点击href链接上的? (尝试使用Firefox和Chrome)

异步请求通常称为,并且' Ready'消息立即显示在控制台中。

摘录:

new Ajax.Request('index.php', {
    method: 'post',
    asynchronous: true,
    parameters: { 'sleep': 10 },
    onSuccess:  function(transport) { console.log('Success'); },
    onFailure: function() { console.log('Error'); }
});

console.log('Ready');

1 个答案:

答案 0 :(得分:3)

PHP是导致此问题的原因。当你执行session_start()时,PHP会锁定会话文件,因此没有并发写入此文件,并使正在运行的脚本可以完全访问会话变量(读取和写入)。

所以你需要尽快调用session_write_close()。