AJAX调用终止后服务器无响应



我遇到一种情况,我对服务器的Ajax调用可能需要很长时间(30-40秒)。我正在使用jQuery。并将超时时间设置为60秒。因此,如果我在60秒内没有得到任何响应,调用将被中止并报告错误。

现在的问题是,在此之后对服务器的任何连续调用都将继续等待,而不仅仅是AJAX调用,甚至在新窗口中从同一服务器打开新页面也将继续等待。让它再次工作的唯一方法是完全重新启动浏览器。是什么原因造成的呢?这和服务器有关吗?

当终止ajax请求时,PHP脚本实际上继续运行。

如果你使用会话,用户的会话被正在运行的脚本锁定,你必须等待脚本终止才能执行其他请求。

这与php image resize

期间服务器工作负载增加的问题完全相同

解决方案是在做很长时间的事情之前解锁会话:

session_write_close();
do_something_long();
session_start();

相关内容

  • 没有找到相关文章

最新更新