Javascript仅在关闭窗口时执行操作,而不是在重新加载时

时间:2015-11-13 08:59:37

标签: javascript jquery ajax sjax

我的问题是,我只想在用户关闭窗口时执行同步ajax请求,而不是在重新加载时执行。我有一个实时拍卖管理器界面,用户应该在注销或结束拍卖后关闭窗口,因为移动应用api会将拍卖标记为拍卖结束后的拍卖,这为移动应用用户提供了机会继续竞标产品。但即使我发送给他们的用例,他们也不会注销或结束拍卖,所以我必须让它完全万无一失:我发送同步请求来结束拍卖。我找到了window.onbeforeunload事件,但是即使我按f5或离开页面它也会发送请求,这不是一个好的解决方案。拍卖,物品和出价都存储在memcache中,因此关闭窗口后他们不会重置,我必须删除所有项目。到目前为止的代码:

window.onbeforeunload = closingCode;
function closingCode(e) {
    $.ajax({
        type: "POST",
        url: ajaxPath,
        async: false,
        data: {callback: "endOnClose", params: []},

    });
}

我希望有一个解决方案。提前谢谢!

1 个答案:

答案 0 :(得分:3)

我找到了this answer,但我想到了另一种可能更好的方法:如果你使用ajax每隔x秒轮询一次,当轮询在服务器上停止2次,那么执行代码然后你想在你的问题中执行。