2

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

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

    });
}

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

4

1 回答 1

3

我找到了这个答案,但是我想到了另一种可能更好的方法:如果您使用 ajax 每隔 x 秒轮询一次,并且当轮询在服务器上停止 2 次该时间跨度时执行您想要执行的代码,该怎么办?你的问题。

于 2015-11-13T09:04:12.263 回答