gpt4 book ai didi

javascript - Chrome.Storage.Local 持久化

转载 作者:数据小太阳 更新时间:2023-10-29 04:25:10 25 4
gpt4 key购买 nike

全部。我已经开始使用 Chrome 的各种 API 开发小型扩展程序,尽管一切正常,但我仍然对一些事情感到好奇。

两个问题,如果你们不介意帮我解决的话:

1. 谁能告诉我 chrome.storage.local 的持久性限制是什么?我已经自己尝试过各种测试,例如使用 chrome.storage.local.set() 存储一些东西,清除我所有的浏览器历史记录、cookie 等,然后查看是否一切都还在那里。通常它还会在那里,但有时我稍后再回来查看它就会消失。总的来说,我一直无法明确标记我正在做的事情,即偶尔清除 .local 数据。

2. 到目前为止,我主要使用 chrome.storage.sync,同时没有使用 Chrome 的“登录 Chrome”功能登录。我在 API 页面上读到,如果 .sync 在 Chrome 离线时使用(以及未登录,我假设,这是我的情况),数据存储在本地,然后稍后同步。我主要担心的是,这是否意味着我使用 chrome.storage.sync 存储的数据可能会被删除,因为我使用 chrome.storage.local 存储的数据过去已经存在?无论如何,我一直在使用 .sync 的主要原因之一是因为我从未有过用它删除数据的经历,而我有过使用 .local 的经历(如我在 #1 中所述)。

非常感谢!请帮帮我!

编辑:我很确定 .local clear 没有发生,因为我错误地删除了扩展名,然后又将其重新添加进去。我知道 that将清除 .local 数据(但保留 .sync)。

最佳答案

我是该 API 的作者。

chrome.storage.local 不应该消失,除非在卸载时(这听起来像你的情况)或者在极少数情况下在数据库损坏时消失(我们已经看到这种情况特别发生在系统还原时)。

chrome.storage.sync 的工作方式相同,不同之处在于它使用的合并算法如果 2 台机器进行冲突更改可能会导致数据丢失。在您的情况下,如果您登录到使用 chrome.storage.sync 的机器,则可能会发生这种情况。更常见的原因是一台机器在进行更改时处于离线状态,或者用户可能设法同时更改了 2 台机器上的数据(这就是为什么建议仅在用户操作时更改数据——我们应该记录这一点)。

对于它的值(value)——我们也应该记录这一点——合并算法是 last-change-wins 和 sync-is-source-of-truth——但是添加的任何本地键/值对都不会删除。如果你有:

{a:1, b:2} 在计算机 A 上(登录并同步),{b:3, c:4} 在计算机 B 上(未登录),

并且计算机 B 登录,在完成完全同步后,A 和 B 上的存储状态最终将在 {a:1, b:2, c:4} 因为 A 的数据已经是同步的一部分,这真相的来源,但 'c' 还不存在,所以被添加了。

在这种情况下,A 将获得一个添加“c”的 onChange 事件,B 将获得一个添加“a”并将“b”从 3 更新为 2 的 onChange 事件。

关于javascript - Chrome.Storage.Local 持久化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23210499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com