我想在用户关闭浏览器窗口时通知服务器。
我尝试了所有的
$(window).bind("beforeunload", function() {
$.get("${contextPath}/notify?direction=logout");
});
和
$(window).unload( function() {
$.get("${contextPath}/notify?direction=logout");
});
和
$(window).unload(function() {
$.ajax({
url: "${contextPath}/notify?direction=logout"
});
});
但两者都不能很好地工作,尽管事实上手册中说它可能应该这样做。
在 Firefox 中,我只在窗口关闭时没有通知,但在页面刷新时有通知。在 Chrome 中我都没有。
我试图在 Firebug 或 Chrome 开发者工具中跟踪这个脚本,发现如果跟踪它就开始工作了!所以我认为它不能正常工作,因为它没有时间在窗口关闭或导航之前发送请求。
这是真的?如何完成我的任务?
解决方案
这有效:
$(window).bind("beforeunload",
function() {
$.ajax({
async: false,
url: 'notify'
});
}
);