liip/Backbone.localStorageSync

Name: Backbone.localStorageSync

Owner: Liip

Description: A caching layer between the client and server

Created: 2012-09-14 12:30:47.0

Updated: 2016-11-07 07:34:12.0

Pushed: 2012-09-20 15:08:08.0

Homepage: null

Size: 132

Language: JavaScript

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Backbone localStorage Sync

Build Status

An extension to Backbone providing localStorage caching for sync operations

TODO

API

Backbone.localStorageSync(originalSyncLayer, uniqueNameForCollections, options)
Configuration Options

The provided values are the defaults.

{
    alwaysUpdate: true, //Fetch the model from original Sync even if it was available in the localStorage
    prefix: '' //Used in front of all localStorage keys
}
Usage
With RequireJS
require(['backbone', 'backbone.localstoragesync'], function(Backbone, localStorageSync) {
    var model = new Backbone.Model({
        sync: new localStorageSync(Backbone.sync)
    });

    model.fetch().done(function () {
        //Use as normal
    });

    var collection = new Backbone.Collection({
        sync: new localStorageSync(Backbone.sync, 'MyCollection')
    });
    collection.fetch();
});
Without RequireJS

Add the script after Backbone. Then you get a global as Backbone.localStorageSync and can use it like this:

var model = new Backbone.Model({
    sync: new Backbone.localStorageSync(Backbone.sync)
});

model.fetch().done(function () {
    //Use as normal
});

var collection = new Backbone.Collection({
    sync: new localStorageSync(Backbone.sync, 'MyCollection')
});
collection.fetch();
Dependencies

When you use an AMD loader you need to have those libraries available under the stated name. If you use RequireJS and have trouble check the shim config.

localStorage and JSON have to be globaly available otherwise the provided Sync layer will be returned.

Optional

require.js

License

Backbone.localStorageSync is Copyright © 2012 Liip AG. It is distributed under the MIT license.

It is inspired by: Backbone.cachingSync Backbone.localStorage


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.