Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.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.storage.sync进行故障排除?_Javascript_Google Chrome_Google Chrome Extension - Fatal编程技术网

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

Javascript 如何对chrome.storage.sync进行故障排除?,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我有一个应用程序,它使用chrome.storage API将任务存储在列表中。每次更新任务列表时,阵列都存储到chrome.storage.sync 我有两台安装了Chrome扩展的笔记本电脑。我在这两个网站上都使用了相同的谷歌账号 有时,当我在第一台笔记本电脑上更新任务列表时,第二台笔记本电脑将在几秒钟内反映更新。但其他时候,第二台笔记本电脑在很长时间内不会收到更新。这是非常不一致的-有时如果我退出Chrome并在第二台机器上重新启动它,更新的列表就会出现 我在两台笔记本电脑上都没有发现任何

我有一个应用程序,它使用chrome.storage API将任务存储在列表中。每次更新任务列表时,阵列都存储到chrome.storage.sync

我有两台安装了Chrome扩展的笔记本电脑。我在这两个网站上都使用了相同的谷歌账号

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

我在两台笔记本电脑上都没有发现任何控制台错误,任务被正确地保存在第一台机器上——它们只是没有被转移到第二台笔记本电脑上

API有一些限制,我正在试图找出我是否违反了其中之一。最有可能的是:

10 MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE
每分钟可执行的最大设置、删除或清除操作数,持续时间超过10分钟。导致超出此限制的更新会立即失败并设置运行时。lastError

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


一般来说,有没有办法调试Chrome sync的问题?预计会变薄吗?

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

  • 在Chrome重新启动之前,达到配额限制可能会将您的扩展名列入内存中的黑名单

    理论上,您可以通过
    chrome.storage.set
    回调捕获配额错误,因为它将设置
    chrome.runtime.lastError
    ,并实现某种退避/缓冲

    实际上,Chrome(不是Google后端)会将一个突破限制的扩展列入黑名单,并且这种情况会在Chrome会话中持续存在(即使配额应该刷新)。截至2014年10月16日。据报道已经修复

  • 无法等待/请求同步

    不幸的是,
    chrome.storage.sync
    在其当前形式中没有为远程同步完成或在本地状态没有更改的情况下发生错误提供事件。因此,如果您在开始时依赖于某个值,那么您可以。而且,正如Chrome开发人员所指出的那样,这种情况可能会保持下去

  • 没有公开任何状态信息

    事实上,忘记事件吧。如果启用了Chrome Sync,API甚至不会公开。如果它这样做了,就会解决很多问题,并公开最后一个已知的同步时间戳。目前还没有,;这是一个例子

  • 尽管如此,
    chrome.storage.sync
    还是一个有用的工具。然而,当使用它时,期望它是不可靠的,并且始终注意费率限制;可能实施您自己的速率限制

    回答你的问题
    对于调试
    chrome.storage.sync
    ,您可以使用
    chrome://sync-internals
    page.

    谢谢,回答得很好。我不知道chrome://sync-internals. 谷歌在他们的存储API文档中没有提到这一点。