在onunload事件上通知服务器(XMLHttpRequest?)?

时间:2010-08-14 09:47:57

标签: javascript ajax comet tornado

当客户端离开页面时,是否可以通知服务器(使用一些数据发出单个HTTP请求,响应不重要)?

我实际上正在使用python-tornado彗星应用程序,javascript不断保持与服务器的请求连接(关闭并在事件上重新打开。基于此:https://launchpad.net/eftw)。

我没有找到一种简单的方法来调试它(特别是使用FireBug)。这使它很成问题。

哦,还有实际的代码(因为它已经有点可用了):http://bazaar.launchpad.net/~hoverhell/xftw/trunk/files

1 个答案:

答案 0 :(得分:4)

您不能以可靠的方式执行此操作,具体取决于浏览器和延迟,您的XmlHttpRequest可能会在实际完成之前被终止。

浏览器制造商希望(正确地,imo)尽快呈现下一页。 onbeforeunloadonunload是清理事件,旨在快速处理剩下的任何变量,它们并不意味着等待...所以浏览器不会。由于较新浏览器中的垃圾收集也有显着改善,因此浏览器更不用说等待这些事件。

您可以在window.onbeforeunload事件中发送请求...但是它会到达服务器吗?也许