Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 退出时将Chrome打包应用程序数据保存到存储器_Javascript_Google Chrome_Local Storage_Google Chrome App - Fatal编程技术网

Javascript 退出时将Chrome打包应用程序数据保存到存储器

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中发生

我有一个带有文本编辑器(CodeMirror)的Chrome打包Web应用程序,我想实现一个简单的功能:

当应用程序关闭时,它应该记住编辑器的内容,这样当它再次打开时它就在那里了

从存储器中加载文本很容易,而且效果很好

我似乎无法在退出工作上节省开支。我想将代码保存在chrome.storage.sync中,这意味着我不能每次按下一个字符都保存代码——我需要做的是检测web应用程序何时退出,然后保存窗口的内容

我可能只是在做一些非常愚蠢的事情,但因为我似乎无法调试background.js中发生的事情,所以我不知道-我甚至不知道当窗口关闭时我的代码是否被调用:(

有没有人举过一个例子,说明如何检测打包应用程序的窗口何时关闭,然后在chrome.storage.sync中写入内容(任何内容!)?希望我能从那里开始工作

(很抱歉,我本想发布上次使用的代码,但现在找不到)


谢谢!

作为一种解决方法,您可以始终使用
chrome.storage.local
作为您可以经常写入的存储,然后在窗口关闭时从事件页面保存到
sync

您可以使用从事件页面收听此消息



您可能需要查看以保存编辑器文件,因为
存储.sync
的容量非常低。

您是否尝试过绑定到
窗口。onbeforeunload
?它是Chrome(打包的)吗应用程序还是某个地方托管的Web应用程序?答案取决于。请编辑您的问题以澄清。@Xan:标题是“Chrome打包应用程序”-但我也会更新主要帖子。@Jonsow
onbeforeunload
将是完美的,但我认为它在打包应用程序上不起作用-至少不是根据感谢-是的,那是完美的。当我更新从窗口中删除本地存储,然后从本地存储中抓取并在退出时将其写入同步(从background.js),一切正常。你(Gordon)可能需要重新考虑您的设计。当您希望确保保存工作时,退出只是众多事件之一。您还会遇到应用程序崩溃、浏览器关闭、操作系统崩溃、电源故障等问题。应用程序应该一直保存其工作,以便用户不会丢失任何工作。一种方法是为空闲事件安装处理程序,并在用户空闲时保存,例如15秒。或者,在进行X次更改后保存。(这些只是示例。)想想谷歌的Keep应用程序是如何工作的。@MarcRochkind确实提出了比经常保存到
存储区更好的方法。
(可能在每次输入字符后).我认为应用程序作者不应该关心比这更大的弹性。