gpt4 book ai didi

javascript - 如何对 chrome.storage.sync 进行故障排除?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:24:02 24 4
gpt4 key购买 nike

我有一个 simple Chrome extension它使用 chrome.storage API 将任务存储在列表中。每次更新任务列表时,都会将数组存储到 chrome.storage.sync。

我有两台装有 Chrome 扩展程序的笔记本电脑。我在两者上都登录了同一个 Google 帐户。

有时,当我在第一台笔记本电脑上更新任务列表时,第二台笔记本电脑会在几秒钟内反射(reflect)出更新。但其他时候,第二台笔记本电脑很长时间都不会收到更新。这非常不一致 - 有时如果我退出 Chrome 并在第二台机器上重新启动它,更新的列表就会在那里。

我在两台笔记本电脑上都没有收到任何控制台错误,并且任务在第一台机器上正确保存 - 它们只是没有转移到第二台笔记本电脑。

chrome.storage.sync API 有一些限制,我想弄清楚我是否违反了其中一个限制。最有可能的是:

10 MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE

“每分钟可以执行的设置、删除或清除操作的最大数量,持续超过 10 分钟。会导致超过此限制的更新会立即失败并设置 runtime.lastError。”

我的理解是,只要连续 10 分钟每分钟操作不超过 10 次(总共至少 100 次),就不会违反限制。如果我违反了这个限制,我会看到一个控制台错误,或者任务不会在本地保存。

一般来说 - 有没有办法调试 Chrome 同步问题?预计它会变脆吗?

最佳答案

依赖 chrome.storage.sync 有问题,是的。

  1. 达到​​配额限制可能会将您的扩展程序列入内存黑名单,直到 Chrome 重新启动。

    理论上,您可以使用 chrome.storage.set 回调捕获配额错误,因为它会设置 chrome.runtime.lastError,并实现一些一种退避/缓冲。

    在实践中,有anecdotal evidence Chrome(不是 Google 后端)将违反限制的扩展程序列入黑名单,并且这在 Chrome session 中持续存在(即使配额应该刷新)。这是 still not fixed截至 2014 年 10 月 16 日。 据报道已修复。

  2. 无法等待/请求同步。

    不幸的是,当前形式的 chrome.storage.sync 不提供远程同步完成或发生错误的事件,以防本地状态没有变化。因此,如果您在开始时依赖于某些值,那么您 can't reliably wait for it .而且,正如 Chrome 开发者所指出的那样,这种情况可能会保持下去。

  3. 没有状态信息暴露。

    实际上,忘记事件。如果启用了 Chrome 同步,API 甚至不会公开。如果这样做,很多问题都会得到解决,并公开最后已知的同步时间戳。目前没有;这是一个feature request .

尽管如此,chrome.storage.sync 还是一个有用的工具。但是,在使用它时,预计它是不可靠的,并始终注意速率限制;可能实现您自己的速率限制。

实际回答你的问题

要调试 chrome.storage.sync,您可以使用 chrome://sync-internals 页面查看其内部情况。

关于javascript - 如何对 chrome.storage.sync 进行故障排除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26379694/

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