Ben*_*rey 5 javascript google-chrome google-chrome-extension
我有一个简单的Chrome扩展程序,它使用chrome.storage API在列表中存储任务.每次更新任务列表时,阵列都存储到chrome.storage.sync.
我有两台笔记本电脑设置了Chrome扩展程序.我在两者上都登录了相同的Google帐户.
有时,当我更新第一台笔记本电脑上的任务列表时,第二台笔记本电脑将在几秒钟内反映更新.但其他时候,第二台笔记本电脑很长时间都不会收到更新.这是非常不一致的 - 有时如果我退出Chrome并在第二台机器上重新启动它,更新的列表将会在那里.
我在任何一台笔记本电脑上都没有出现任何控制台错误,并且任务在第一台机器上正确保存 - 它们只是没有转移到第二台笔记本电脑上.
该chrome.storage.sync API有一些限制,我想弄清楚,如果我违反其中之一.最有可能的是:
10 MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE
Run Code Online (Sandbox Code Playgroud)
"每分钟可以执行的最大设置,删除或清除操作数,持续超过10分钟.将导致超出此限制的更新立即失败并设置runtime.lastError."
我读到的方式是,只要连续10分钟每分钟不超过10次操作(总共至少100次),就不会违反限制.如果我违反此限制,我会看到控制台错误或任务无法在本地保存.
通常 - 有没有办法调试Chrome同步问题?它有望成为一个好消息吗?
依赖是有问题chrome.storage.sync
,是的.
达到配额限制可能会将您的扩展程序列入内存,直到重新启动Chrome.
理论上,您可以使用chrome.storage.set
回调捕获配额错误,因为它将设置chrome.runtime.lastError
并实现某种退避/缓冲.
在实践中,有传闻证据表明Chrome(不是谷歌后端)黑名单是一个突破限制的扩展名,并且这会在Chrome会话中持续存在(即使配额应该刷新).截至2014-10-16,这仍未修复.
无法等待/请求同步.
不幸的是,chrome.storage.sync
在其当前形式中,不提供远程同步完成的事件或在本地状态没有变化的情况下出错.因此,如果您在启动时依赖某些值,则无法可靠地等待它.而且,正如Chrome开发人员所指出的那样,这可能会保持这种状态.
没有暴露国家信息.
实际上,忘了事件.如果启用了Chrome同步,则API甚至不会公开.如果这样做会解决很多问题,并暴露出最后一个已知的同步时间戳.它目前没有; 这是一个功能请求.
尽管如此,这chrome.storage.sync
是一个有用的工具.但是,在使用它时,期望它不可靠,并始终注意速率限制; 可能会实施自己的速率限制.
对于调试chrome.storage.sync
,您可以在chrome://sync-internals
页面下查看.
归档时间: |
|
查看次数: |
705 次 |
最近记录: |