首页 > 解决方案 > 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中重置网页),我不知道为什么会发生这种情况,非常感谢任何帮助

标签: javascriptdatabasesaveonbeforeunloadonunload

解决方案


创建一个函数并将其命名为saveData()

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

在 Body html 标记处放置 onunload="saveData()" 示例:

<body onunload="saveData()">

推荐阅读