我做了一个简单的Ajax ...xmlhttprequest在请求处理后是否保持连接打开?
的请求和响应头都包含连接:Keep-Alive
我瞪着了一下,发现客户端从而保持与服务器的持久连接 。这支持流水线,客户端可以发送多个请求,而无需等待每个响应。
所以我有一些问题:
- 哪里了XMLHttpRequest实际打开到服务器的连接?
- 是否创建许多xmlhttprequest对象打开自己的连接或使用流水线将其发送到同一连接...?
- 我想要处理同时请求..我可以排队请求(存储参数)..并在onreadystate提供函数来处理它..即调用递归请求的函数?或者它根本不是一个好主意?
- 什么时候连接关闭..在什么阶段?
其他信息: 我不想使用jquery或任何其他librarie为ajax.You虽然可以提出。我可以检查它们是如何工作的。 我使用javascrip和php(codeigniter框架)。 我希望能够处理多个请求(2)..和队列请求,当达到限制时,会产生 。
感谢提前:)
你是否明白http请求是通过使用'tcp connection'完成的? http使用tcp就像传真使用电话线一样。'tcp connection'是'Connection:Keep-Alive'中引用的内容。您并不知道浏览器何时或在哪里决定创建tcp连接,但通常浏览器会创建多个同时到服务器的tcp连接,如果这会有益的话。对html,图像,CSS,ajax请求等的请求......都经过相同的线路(尽管浏览器通常会打开多行)。 – goat
感谢您的回复。 Yups我知道它是通过TCP连接发生的。感谢您澄清关于Connection:Keep-Alive。我已经读过,标准是2个同时连接,尽管一些浏览器支持更多。 –