【发布时间】:2012-12-14 09:43:47
【问题描述】:
我做了一个简单的ajax...
请求和响应标头都包含连接:Keep-Alive
我看了一下,发现客户端因此保持了持久连接 与服务器。这种支持流水线,客户端可以发送多个请求而无需等待每个响应。
所以我有一些问题:
- xmlhttprequest 实际在哪里打开到服务器的连接?
- 创建许多 xmlhttprequest 对象是打开它们自己的连接还是使用管道在同一连接上发送它...?
- 我想同时处理请求.. 我可以将请求排队(存储参数).. 并在 onreadystate 提供函数来处理它.. 即调用递归发出请求的函数?或者这根本不是一个好主意?
- 连接何时关闭..在什么阶段?
其他信息: 我不想为 ajax 使用 jquery 或任何其他库。不过你可以提议。一世 可以检查它们是如何工作的。 我正在使用 javascrip 和 php(codeigniter 框架)。 我希望能够处理多个请求(2)..和队列请求 达到限制时进行。
提前致谢:)
【问题讨论】:
-
你明白http请求是通过
tcp connection来完成的吗? http 使用 tcp 就像传真使用电话线一样。tcp connection是Connection: Keep-Alive中所指的内容。你真的不知道浏览器何时何地决定创建一个 tcp 连接,但通常浏览器会创建多个同时连接到服务器的 tcp 连接,如果这样做有好处的话。对 html、图像、css、ajax 请求等的请求都经过相同的行(尽管同样,浏览器通常会打开多行)。 -
感谢您的回复。是的,我知道它是通过 Tcp 连接进行的。感谢您对 Connection: Keep-Alive 的澄清。我读过标准是 2 个同时连接,尽管有些浏览器支持更多。
标签: php javascript ajax codeigniter xmlhttprequest