Backbone.js умеет отдыхать и localstorage?

Я экспериментировал с модулем localstorage для Backbone.js(https://github.com/jeromegn/Backbone.localStorage). Насколько я понимаю, это перегружает Backbone.sync и поэтому останавливает магистраль от нажатия на сервер (?). В идеале, я хотел бы передать свои данные обратно на сервер, а также сохранить его локально, когда он находится в сети, и просто использовать localstorage, когда он находится в автономном режиме (вы знаете, идеальное приложение). Я еще не нашел никакой документации.

Является ли Backbone.localStorage частью этого? Кто-нибудь смог построить этот сценарий? Как это делается? (Пожалуйста, скажите мне, что мне не нужно сворачивать.)

Спасибо.

Ответ 1

Backbone.localStorage - это внешний файл, который вы можете использовать, который перезаписывает Backbone.Sync.

Вы можете использовать простое обнаружение функции, независимо от того, находится ли пользователь в автономном режиме или онлайн, а затем асинхронно загружать Backbone.localStorage.js, если они находятся в автономном режиме.

Если необходимо, вы также можете передать определенную версию Backbone.sync вашим моделям и коллекциям.

Если вы хотите сделать оба одновременно, вам придется написать собственную версию Backbone.sync, которая вызывает сервер и вызывает localStorage.

Самый простой способ сделать это - просто определить

Backbone.sync = function() {
    originalSync.apply(this, arguments);
    localStorageSync.apply(this, arguments);
}

Edit:

Как уже упоминалось в комментариях, если вы используете последний backbone localStorage plugin, вы можете сделать следующее

Backbone.sync = function Sync() {
    Backbone.ajaxSync.apply(this, arguments);
    return Backbone.localSync.apply(this, arguments);
};