Ajax(异步)时无法离开Page

时间:2019-08-01 10:16:05

标签: javascript jquery ajax

我有以下AJAX调用,最多需要20秒才能完成。我希望用户可以在此呼叫正在加载且未完成时离开站点。

但是,当用户单击链接或“后退”按钮时,站点将等待呼叫结束,然后再将用户重定向到用户单击的上一个站点或链接

$.ajax({
  url: 'index.php?route=sale/order/getSupportTickets&token=<?php echo $token; ?>&email=<?php echo $email; ?>',
  dataType: 'json',
  success: function(json) {
    //do stuff here
  }
});

2 个答案:

答案 0 :(得分:2)

AJAX调用与常规HTTP调用没有什么不同(它只是在后台进行)。因此,服务器仍在执行此调用(getSupportTickets)。

听起来您的Web服务器实际上正在阻塞(即您没有任何线程支持或CPU处于100%繁忙状态),这给了您这种阻塞呼叫的感觉

答案 1 :(得分:1)

在ajax调用中,一旦获得所需会话的数据,请使用session_write_close();

只有1个php脚本可以与1个php会话同时运行,会话被“锁定”到当前脚本。使用session_start()的脚本将在该指令上被阻止,直到释放会话为止。

如果您使用session_write_close();释放会话,那么您的ajax脚本将能够继续,而新的请求将能够访问该会话(这是被阻止的)。