冗长的jQuery AJAX请求冻结了浏览器

时间:2017-11-17 08:09:48

标签: php jquery ajax asynchronous

我有一个AJAX请求,处理AJAX请求既复杂又冗长。问题是这个冗长的请求会冻结浏览器。我的意思是当AJAX请求正在进行中时,无论我是从页面点击任何链接/按钮还是在浏览器地址栏中输入相同网站的某个Url,它都无所事事并等待AJAX​​请求响应,一旦AJAX响应返回其他进程启动工作。我正在使用带有AJAX请求的 async:true 。 这是我正在使用的代码。它是一个简单的页面,只有这个jQuery AJAX请求。我的服务器端PHP。

int main() {

    unsigned __int8 counts[5] = { 0, 0, 0, 0, 0};
    sizeof(counts) //Prints 5
    Func(counts);

}

void Func(unsigned __int8 counts[]){
   sizeof(counts) //Prints 4
}

为什么会这样?我该如何解决这个问题?

PS:在您标记此副本之前,我已经检查了StackOverflow上几乎所有类似的问题。在我的案例中没有解决方案(尽管大多数情况下解决方案是使用 async:true ,我已经在做了。

提前致谢,

1 个答案:

答案 0 :(得分:1)

为什么同一网站的任何链接在ajax期间不起作用的原因是您的脚本将会话锁定在服务器中。

您可以不使用此脚本的会话,也可以在确定这是正确的用户等之后,但在开始发送电子邮件(或做其他任何其他事情)之前完成会话。

在开始使用PHP发送电子邮件之前使用session_write_close()

或者,您可以实现自己的异步会话处理程序。