.sync()函数如何工作?

时间:2016-05-24 11:20:59

标签: kinto

我正在查看Kinto文档中的diagram for a sync operation,我有一个疑问。

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

我们需要最后一次拉动?

1 个答案:

答案 0 :(得分:1)

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

您在推送更改时也可能对集合进行了一些更改(由其他设备完成)。

推送后拉动将让您获取新的last_modified值,您所做的更改以及在此期间所做的更改。

此时你可能会认为抓住你所做的改变有点傻(因为你已经知道你刚刚推动了什么)。它基本上是the subject of this issue

我们的想法是,您还可以尝试使用集合的If-Match值作为last_modified标头提取上次更新的_since值,然后再将其更改为{ {1}}参数并排除您已更改的所有记录ID。

在这种情况下,您将获得大部分时间的304或其他人在您推动时所做的更改列表。