收到响应后,XMLHttpRequest对象是否关闭?

时间:2015-01-22 21:41:32

标签: javascript ajax xmlhttprequest

我正在尝试使用XMLHttpRequest对象连接到服务器以在不同时间发布数据。我创建了一个对象并“连接”到服务器,如下所示:

var xhr = new XMLHttpRequest();
xhr.open("post", location, true);
xhr.send(); //Is this send call needed to open the connection?

在稍后的时间点,我会这样说:

xhr.send("Something to send");

但是,查看开发人员控制台,似乎只有初始请求通过(并成功响应)。第二个请求似乎没有发送。我试图缩小可能存在的问题,所以我想:一旦收到回复,就可以关闭连接;为什么要保持开放?所以,我的问题是:XMLHttpRequest对象连接收到响应后是否关闭?如果是这样,模拟连续打开连接的最佳方法是什么(不断重新连接?)?

1 个答案:

答案 0 :(得分:5)

是的,如果您没有欺骗服务器以使其保持活动状态,则会在发送响应后将其关闭。

也许你想寻找websockets。但是如果你不想玩这些,只需为你的每个“请求”创建一个新的HttpRequest。

与HTTP的基本通信:1请求 - > 1回复 - >闭合!

编辑:请记住,websockets是HTML5的一项新功能,因此它不适用于所有浏览器,如果它们适用于某些浏览器,它们可能并未完全实现。