我正在查看Kinto 文档中同步操作的图表,但我有疑问。
为什么 .sync() 是 pull.then(push).then(pull) 而不是 pull.then(push)?
我们需要最后一次拉动做什么?
当您进行推送时,您将更新记录last_modified
值,因此最后您需要获取last_modified
列表的新值。
在推送更改(由另一台设备完成)时,您可能还对集合进行了一些更改。
推后拉动将让您获取新last_modified
值、您所做的更改以及同时进行的更改。
在这一点上,您可能会认为抓住您所做的更改有点愚蠢(因为您已经知道您刚刚推送了什么)。它基本上是这个问题的主题。
这个想法是,您还可以尝试使用更改之前的集合值作为参数,并排除您更改的所有记录 ID last_modified
,将上次更新的值作为If-Match
标头提取。last_modified
_since
在这种情况下,您大部分时间都会收到 304 或其他人在您推送时所做的更改列表。