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;
    }
   });
});