Как работает функция.sync()?

Я искал диаграмму для операции синхронизации в документах Kinto, и у меня есть сомнения.

Почему.sync() является pull.then(push).then(pull) вместо просто pull.then(push)?

Для чего нам нужен последний рывок?

1 ответ

Когда вы сделаете толчок, вы обновите записи last_modified значение, поэтому в конце вам нужно будет захватить новый last_modified значение списка.

Возможно, у вас также есть некоторые изменения в коллекции, когда вы отправляете свои изменения (сделанные другим устройством).

выдергивание после толчка позволит вам схватить новый last_modified значение, изменения, которые вы сделали, а также изменения, которые были сделаны за это время.

В этот момент вы можете подумать, что захват изменений, которые вы сделали, немного глуповат (потому что вы уже знаете, что только что нажали). Это в основном предмет этой проблемы.

Идея в том, что вы также можете попытаться last_modified значение вашего последнего обновления как If-Match заголовок с помощью last_modified стоимость коллекции до ваших изменений как _since параметр и исключая все идентификаторы записей, которые вы изменили.

В этом случае вы получите 304 большую часть времени или список изменений, которые были сделаны другими, когда вы выполняли свою работу.

Другие вопросы по тегам