2

我正在查看Kinto 文档中同步操作的图表,但我有疑问。

为什么 .sync() 是 pull.then(push).then(pull) 而不是 pull.then(push)?

我们需要最后一次拉动做什么?

4

1 回答 1

1

当您进行推送时,您将更新记录last_modified值,因此最后您需要获取last_modified列表的新值。

在推送更改(由另一台设备完成)时,您可能还对集合进行了一些更改。

推后拉动将让您获取新last_modified值、​​您所做的更改以及同时进行的更改。

在这一点上,您可能会认为抓住您所做的更改有点愚蠢(因为您已经知道您刚刚推送了什么)。它基本上是这个问题的主题

这个想法是,您还可以尝试使用更改之前的集合值作为参数,并排除您更改的所有记录 ID last_modified,将上次更新的值作为If-Match标头提取。last_modified_since

在这种情况下,您大部分时间都会收到 304 或其他人在您推送时所做的更改列表。

于 2016-06-07T09:27:54.653 回答