gpt4 book ai didi

angularjs - 如何防止浏览器窗口在 AngularJS 中关闭,直到 promise 得到解决

转载 作者:行者123 更新时间:2023-12-05 02:58:43 26 4
gpt4 key购买 nike

我有以下代码:

$window.onbeforeunload = function (event) {
event.preventDefault();
// some asynchronous code
};

我希望 onbeforeunload 事件等到异步代码执行完毕。不确定这是否可以在所有支持 AngularJS 的浏览器上实现。

最佳答案

无论您使用的是 AngularJS 还是任何其他框架,现代浏览器都不再支持延迟窗口卸载直到异步操作完成,因为它会带来糟糕的用户体验。

但是,假设您想要执行的异步操作是发出 API 请求,那么现代解决方案是使用 navigator.sendBeacon()方法代替。它保证由浏览器以非阻塞方式发送,即使在窗口已卸载后也是如此。这对每个人来说都是一个更好的解决方案。

请注意,信标请求必须作为 POST 请求发送,因此您的 API 需要为您希望在卸载处理程序中使用的任何端点支持此方法。

关于angularjs - 如何防止浏览器窗口在 AngularJS 中关闭,直到 promise 得到解决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58699445/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com