在窗口关闭时发布XMLHTTPRequest

时间:2011-01-27 20:10:29

标签: javascript xmlhttprequest

我已经为网络写了an XMPP client,使用标准的BOSH方法连接到服务器。

当用户关闭窗口时,我遇到了用户连接保持打开的问题;由于协议的特殊性,我无法在检测到这种活动时采取行动。 BOSH设计的原因之一是处理易于连接丢失的网络。因此,如果在预先指定的时间范围内打开另一个连接,则可以容忍丢失与服务器的BOSH(Comet)连接。因此,要真正断开用户连接,我必须通过另一个XMLHTTPRequest向XMPP服务器发送断开连接消息。

由于XMLHTTPRequest的异步性质,据我所知,这是不可能的(如果可能的话,它可能会成为隐私问题)。还是我错了?有人可以了解如何在用户关闭窗口时向服务器发送一个最终请求吗?

1 个答案:

答案 0 :(得分:0)

这是我用过的黑客:

window.onunload = function() {
  // I use Prototype to make the Ajax request,
  // but you can use any library you like.
  new Ajax.Request('closeConnection.php');
  alert('While they\'re reading this message, the Ajax should be complete.');
};