Javascript 退出时将Chrome打包应用程序数据保存到存储器
我有一个带有文本编辑器(CodeMirror)的Chrome打包Web应用程序,我想实现一个简单的功能: 当应用程序关闭时,它应该记住编辑器的内容,这样当它再次打开时它就在那里了 从存储器中加载文本很容易,而且效果很好 我似乎无法在退出工作上节省开支。我想将代码保存在chrome.storage.sync中,这意味着我不能每次按下一个字符都保存代码——我需要做的是检测web应用程序何时退出,然后保存窗口的内容 我可能只是在做一些非常愚蠢的事情,但因为我似乎无法调试background.js中发生的事情,所以我不知道-我甚至不知道当窗口关闭时我的代码是否被调用:( 有没有人举过一个例子,说明如何检测打包应用程序的窗口何时关闭,然后在chrome.storage.sync中写入内容(任何内容!)?希望我能从那里开始工作 (很抱歉,我本想发布上次使用的代码,但现在找不到)Javascript 退出时将Chrome打包应用程序数据保存到存储器,javascript,google-chrome,local-storage,google-chrome-app,Javascript,Google Chrome,Local Storage,Google Chrome App,我有一个带有文本编辑器(CodeMirror)的Chrome打包Web应用程序,我想实现一个简单的功能: 当应用程序关闭时,它应该记住编辑器的内容,这样当它再次打开时它就在那里了 从存储器中加载文本很容易,而且效果很好 我似乎无法在退出工作上节省开支。我想将代码保存在chrome.storage.sync中,这意味着我不能每次按下一个字符都保存代码——我需要做的是检测web应用程序何时退出,然后保存窗口的内容 我可能只是在做一些非常愚蠢的事情,但因为我似乎无法调试background.js中发生
谢谢!作为一种解决方法,您可以始终使用
chrome.storage.local
作为您可以经常写入的存储,然后在窗口关闭时从事件页面保存到sync
您可以使用从事件页面收听此消息
您可能需要查看以保存编辑器文件,因为
存储.sync
的容量非常低。您是否尝试过绑定到窗口。onbeforeunload
?它是Chrome(打包的)吗应用程序还是某个地方托管的Web应用程序?答案取决于。请编辑您的问题以澄清。@Xan:标题是“Chrome打包应用程序”-但我也会更新主要帖子。@Jonsowonbeforeunload
将是完美的,但我认为它在打包应用程序上不起作用-至少不是根据感谢-是的,那是完美的。当我更新从窗口中删除本地存储,然后从本地存储中抓取并在退出时将其写入同步(从background.js),一切正常。你(Gordon)可能需要重新考虑您的设计。当您希望确保保存工作时,退出只是众多事件之一。您还会遇到应用程序崩溃、浏览器关闭、操作系统崩溃、电源故障等问题。应用程序应该一直保存其工作,以便用户不会丢失任何工作。一种方法是为空闲事件安装处理程序,并在用户空闲时保存,例如15秒。或者,在进行X次更改后保存。(这些只是示例。)想想谷歌的Keep应用程序是如何工作的。@MarcRochkind确实提出了比经常保存到存储区更好的方法。
(可能在每次输入字符后).我认为应用程序作者不应该关心比这更大的弹性。