- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个 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
有问题,是的。
达到配额限制可能会将您的扩展程序列入内存黑名单,直到 Chrome 重新启动。
理论上,您可以使用 chrome.storage.set
回调捕获配额错误,因为它会设置 chrome.runtime.lastError
,并实现一些一种退避/缓冲。
在实践中,有anecdotal evidence Chrome(不是 Google 后端)将违反限制的扩展程序列入黑名单,并且这在 Chrome session 中持续存在(即使配额应该刷新)。这是 still not fixed截至 2014 年 10 月 16 日。 据报道已修复。
无法等待/请求同步。
不幸的是,当前形式的 chrome.storage.sync
不提供远程同步完成或发生错误的事件,以防本地状态没有变化。因此,如果您在开始时依赖于某些值,那么您 can't reliably wait for it .而且,正如 Chrome 开发者所指出的那样,这种情况可能会保持下去。
没有状态信息暴露。
实际上,忘记事件。如果启用了 Chrome 同步,API 甚至不会公开。如果这样做,很多问题都会得到解决,并公开最后已知的同步时间戳。目前没有;这是一个feature request .
尽管如此,chrome.storage.sync
还是一个有用的工具。但是,在使用它时,预计它是不可靠的,并始终注意速率限制;可能实现您自己的速率限制。
要调试 chrome.storage.sync
,您可以使用 chrome://sync-internals
页面查看其内部情况。
关于javascript - 如何对 chrome.storage.sync 进行故障排除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26379694/
是否可以使用 MS Sync Framework 同步不同数据库中的不同表(具有完全不同的结构),假设其中一个表具有主键,另一个具有唯一索引,其值与第一个表的 PK 一致(但不能晋级PK)?列名也可以
我正在开发一个使用 Twilio Sync 作为数据库的应用程序。我确实订阅了很多事件,例如 itemAdded、itemUpdated、itemRemoved,以使用 Sync Javascript
我们计划使用 ADO.NET 的同步服务将商店与总部同步,有人建议我通过 进行同步。 WCF 代理 . 通过 WCF 代理同步是否意味着我将能够 通过 http 同步 ?如果没有,是否可以使用同步服务
在 Sync Framework 2.1 中,批处理似乎得到了内置支持,因此在某些提供程序中,我们可以只提及批处理大小和假脱机文件位置(以及一些其他属性),批处理将得到处理。开发人员不必编写自己的批处
'sync' 事件和 Backbone.sync 有什么区别? ...它们分别是什么? 最佳答案 虽然两者都与向服务器同步数据的任务有关,但两者之间没有任何联系。 Backbone.sync实现您的
在 Go 中,我们可以使用: type Data struct { lock *sync.Mutex } 或 type Data struct { lock sync.Mutex
我们在各种客户项目中使用 Microsoft Sync Framework 2.1 进行文件和数据库同步。扩展支持将于 2021 年结束。 所以我的问题是: 微软的同步框架策略是什么?它会是开源的,所
我在这个站点和其他站点上看到了一些帖子,指出问题通常是由将表添加到客户端的 SyncAgent 配置或提供者端的 SyncAdapter 的顺序引起的。我相信我在这两个地方都正确地对表格进行了排序(我
Using an Asynchronous Controller in ASP.NET MVC 的使用 BeginMethod/EndMethod 模式部分指的是 Sync() 方法。它没有链接,我无
这是代码: type someThing struct { sync.Mutex cv *sync.Cond num int } func NewSometh
异步地做多项工作(排序向量,主要是函数计算(计算是计算或内存限制,目前,我可以用以下方式编写这些操作: 使用 Threads.@spawn _f1 = Threads.@spawn f1(x) _f2
我想使用 Rust 和 once_cell实现一些静态常量结构实例,一个静态常量向量包含这些静态结构实例。 示例代码如下: use once_cell::sync::Lazy; pub struct
我想使用 Rust 和 once_cell实现一些静态常量结构实例,一个静态常量向量包含这些静态结构实例。 示例代码如下: use once_cell::sync::Lazy; pub struct
看了sync.Pool的设计,发现是两个逻辑,为什么要用localPool来解决锁竞争。我们可以只使用 chan 来实现一个。 使用 channel 比 sync.pool 快 4 倍! pool除了
我有一个编码为在模糊时运行 save_notes 函数的文本区域。当 save_notes 调用时,我在控制台中得到以下内容: TypeError: Cannot read property 'syn
如果 Waitgroups 和 Mutex 总是需要通过引用传递,我们不能把它做成引用类型(禁止使用它们作为值传递)吗?我的意思是有没有我们需要使用它们按值传递的用例? 最佳答案 当您将任何参数作为值
背景:我正在尝试创建一个完全异步 Node js 演示的小测试。然后我可以看到一个好的样本是什么样的,以便清理我完成的其他一些项目。 这是我的代码 //https://medium.com/@tkss
http://msdn.microsoft.com/en-us/library/dd918848.aspx “了解作用域是表和筛选器的组合很重要。例如,您可以定义一个名为 sales-WA 的筛选作用
我尝试同步我的 Visual Studio 代码设置/扩展。我手动执行的许多同步步骤。 然后我发现了这两个工具 https://code.visualstudio.com/docs/editor/se
我正在尝试移植一个扩展,但我的 JS 非常生疏。 https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Chro
我是一名优秀的程序员,十分优秀!