我正在尝试在窗口关闭时发送数据,以防止两个人同时编辑并覆盖对方的数据。目前,我在卸载事件处理程序中使用了sendBeacon。
FireFox:
- 刷新:可行
- 返回按钮:可行
- 关闭窗口:可行
Chrome:
- 刷新:可行
- 返回按钮:可行
- 关闭窗口:不可行
这是我的代码:
function sendDataOnClose(edit,trans){
var url = "../../save.php"; //This has a post request handler and works properly with other functions for saving data
const data = JSON.stringify
({
"translations": trans,
"edit": edit
});
navigator.sendBeacon(url, data);
}
function handleClose(){
if(edit){
console.log("sending a false when edit is: "+ edit)
sendDataOnClose(false, translations);
}
}
window.addEventListener('unload', handleClose);
visibilitychange
事件仍然无效! - Brackets