Как работает функция.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 большую часть времени или список изменений, которые были сделаны другими, когда вы выполняли свою работу.