我正在查看Kinto文档中的diagram for a sync operation,我有一个疑问。
为什么.sync()是一个pull.then(push).then(pull)而不仅仅是pull.then(push)?
我们需要最后一次拉动?
答案 0 :(得分:1)
当您执行推送时,您将更新记录last_modified
值,因此最后您需要获取列表的新last_modified
值。
您在推送更改时也可能对集合进行了一些更改(由其他设备完成)。
推送后拉动将让您获取新的last_modified
值,您所做的更改以及在此期间所做的更改。
此时你可能会认为抓住你所做的改变有点傻(因为你已经知道你刚刚推动了什么)。它基本上是the subject of this issue。
我们的想法是,您还可以尝试使用集合的If-Match
值作为last_modified
标头提取上次更新的_since
值,然后再将其更改为{ {1}}参数并排除您已更改的所有记录ID。
在这种情况下,您将获得大部分时间的304或其他人在您推动时所做的更改列表。