Javascript 将保持活动状态并终止异步连接

Javascript 将保持活动状态并终止异步连接,javascript,http,asynchronous,browser,keep-alive,Javascript,Http,Asynchronous,Browser,Keep Alive,假设我的浏览器向一个域发送了一个HTTP请求,在这个请求完成之前,另一个不同的请求(通过ajax)被发送到同一个域。由于第一个请求仍在进行且尚未终止,这是否意味着第二个请求必须等待第一个请求完成,才能使用第一个请求使用的持久连接?如果是,如何预防?如果我在第一个请求中有一个很长的流连接,这是否意味着第二个请求需要挂起很长时间 (假设浏览器的最大持久连接为1。实际上,我不太明白“最大持久连接”的作用。这是否意味着当持久连接超过最大数量时,其余连接将变为非持久连接?令人困惑……) 有人能解释一下吗

假设我的浏览器向一个域发送了一个HTTP请求,在这个请求完成之前,另一个不同的请求(通过ajax)被发送到同一个域。由于第一个请求仍在进行且尚未终止,这是否意味着第二个请求必须等待第一个请求完成,才能使用第一个请求使用的持久连接?如果是,如何预防?如果我在第一个请求中有一个很长的流连接,这是否意味着第二个请求需要挂起很长时间

(假设浏览器的最大持久连接为1。实际上,我不太明白“最大持久连接”的作用。这是否意味着当持久连接超过最大数量时,其余连接将变为非持久连接?令人困惑……)

有人能解释一下吗

由于第一个请求仍在进行且尚未终止,这是否意味着第二个请求必须等待第一个请求完成,才能使用第一个请求使用的持久连接

不可以。这两个请求仍然是异步且并行的(除非服务器对此进行了限制)

HTTP保持活动仅意味着它们更快,因为两个请求都可以使用相同的连接,特别是在对它们进行管道传输时

但是,如果没有管道,浏览器也可以决定为第二个请求打开第二个连接,而不是等待第一个请求完成并重用其连接。有关详细信息,请参阅

我真的不明白这个“最大持久连接”是做什么的。这是否意味着当持久连接超过最大数量时,其余连接将变为非持久连接


否。当达到限制时,新请求将不得不等待池中的连接再次可用。

您使用的是哪个浏览器以及您在哪里设置的“最大持久连接”?似乎这取决于您的服务器体系结构,您的服务器是否可以一次处理多个连接,或者是否必须一次处理一个连接。@Bergi我认为我们不能设置最大持久连接,对吗?我指的是这个wiki页面@GMsoF:基本上每个浏览器在其设置中都有一个选项,是的。这是否意味着即使第一个请求是流式的并且长时间占用持久连接,第二个请求仍然有机会间歇性地进入第一个持久连接(循环?)(假设其中一个是max,浏览器不会创建第二个持久连接)