js 在页面卸载时保存数据无法按预期工作

问题描述

我正在尝试在页面卸载时保存一些数据,这是我当前的脚本

window.addEventListener("unload",function(event) {
    if(snippetChanged){
        //save it
        snippetChanged = false
        var changeData = {
            code: CryptoJS.AES.encrypt(snippetEditor.getValue(),'key').toString(),name: path[0]
        }
        var xmlHttp = new XMLHttpRequest();

        xmlHttp.open('POST','/userhome/updateSnippet',true);
        xmlHttp.send(JSON.stringify(changeData)); 
    }
})

但是这只能部分起作用(在firefox中重置网页),我不知道为什么会发生这种情况,非常感谢任何帮助

解决方法

创建一个函数并命名它saveData()

function saveData(){
   // your code to save the data
}

在 Body html 标签处放置 onunload="saveData()" 例子:

<body onunload="saveData()">