Javascript Chrome.storage.sync-将保留其数据吗?
我正在使用“Javascript Chrome.storage.sync-将保留其数据吗?,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我正在使用“chrome.storage.sync.get/set”保存数据。我的问题是,当我关闭chrome浏览器窗口并再次打开它时,使用此API保存的数据是否会被重置。当我们退出chrome时,有什么方法可以清除保存的数据吗?我知道有一种方法“chrome.storage.sync.clear()”。但只有当用户退出chrome时,才会发生这种情况。没错,从同步中删除所有存储。但是,如果您想在浏览器“存在”时使用该功能,则必须查看 您可能希望使用此函数(来自文档): 它将processId作
chrome.storage.sync.get/set
”保存数据。我的问题是,当我关闭chrome浏览器窗口并再次打开它时,使用此API保存的数据是否会被重置。当我们退出chrome时,有什么方法可以清除保存的数据吗?我知道有一种方法“chrome.storage.sync.clear()
”。但只有当用户退出chrome时,才会发生这种情况。没错,从同步中删除所有存储。但是,如果您想在浏览器“存在”时使用该功能,则必须查看
您可能希望使用此函数(来自文档):
它将processId
作为参数之一。因此,对于浏览器
进程,您只需掌握processId
。我找到了一个关于这个的答案。它建议你做一些类似的事情:
//Basically loop through all the processes to get the browser's Process Id
var browserId;
chrome.processes.getProcessInfo([], false, function(processes) {
processes.forEach(function(process) {
if (process.type === 'browser') {
browserId = process.id;
}
});
});
一旦您拥有浏览器的进程Id,您就可以向退出
事件添加一个侦听器,并执行必要的操作。我希望这能让你从正确的方向开始
当我关闭chrome浏览器窗口并再次打开它时,使用此API保存的数据是否会重置
不,它是保存的——不仅在本地保存,还可能同步到用户的Google帐户。这就是sync
存储区的要点。表示sync
类似于localStorage
,但已同步到用户的帐户
如果你用它来获取瞬态数据,不要这样做。改为使用local
(因为似乎没有与会话存储等效的扩展),或者只将数据存储在扩展的运行时环境中(不清楚您使用它的目的)
我知道有一种方法chrome.storage.sync.clear()
。但这应该只在用户退出chrome时发生
您必须从事件中触发
清除。不幸的是,当Chrome关闭()时,目前还没有正式的方式通知扩展插件。希望在某个时候会有办法,但目前没有。你至少有两个问题。最好每个问题问一个问题。如果这样做有效,我很惊讶没有人提到它。但即使我从chrome帐户注销,它也会起作用。我找到了另一种方法,可以通过收听端口。@abhilash:“但即使我从chrome帐户注销,它也会起作用”对吧,因为它的作用类似于本地存储,如果连接,也会与帐户同步。“我找到了另一种可能的方式,通过收听端口。”酷!哪个港口?
//Basically loop through all the processes to get the browser's Process Id
var browserId;
chrome.processes.getProcessInfo([], false, function(processes) {
processes.forEach(function(process) {
if (process.type === 'browser') {
browserId = process.id;
}
});
});