根据MDN和规范,navigator.sendBeacon 旨在从窗口卸载中调用。现在,如果您关闭浏览器的最后一个选项卡或整个浏览器窗口,它似乎不再起作用。
谁能确认这是否是设计使然?如果是这样,是否有一种解决方法可以在卸载时发送最后一分钟的数据?
我在 Firefox 74 和 Chrome 81 中使用这个示例文件进行了测试,寻找 Fiddler 的调用。
<html>
<head>
<title>unload test page</title>
<script>
window.addEventListener("unload", function () {
navigator.sendBeacon('https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon');
});
</script>
</head>
<body>
<p><div>unload test page</div></p>
</body>
</html>