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

Posted

技术标签:

【中文标题】js 在页面卸载时保存数据无法按预期工作【英文标题】:js save data on page unload does not work as expected 【发布时间】:2021-09-04 03:14:43 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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

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

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

<body onunload="saveData()">

【讨论】:

好的,所以我知道我将您的答案标记为正确,但我只是注意到它在谷歌浏览器中不起作用(从我发现它与其他浏览器不一样)是否有修复或者解决这个问题的方法?

以上是关于js 在页面卸载时保存数据无法按预期工作的主要内容,如果未能解决你的问题,请参考以下文章

核心数据一对多关系未正确/按预期保存

XPages 进度条在服务器页面持久性设置“将页面保留在内存中”时无法按预期工作

整么用js保存刷新前的数据,也就是刷新后的数据不是刚进入该页面的数据而是刷新前的数据。

枕头图像打开保存未按预期工作[重复]

在laravel中创建新数据时无法按类别保存计算数据

For 循环在 Django、HTML 中无法按预期工作