Backbone.js能够休息和本地存储吗?

时间:2011-04-23 00:46:57

标签: javascript local-storage offline backbone.js

我一直在试验Backbone.js的本地存储模块(https://github.com/jeromegn/Backbone.localStorage)。据我所知,这会使Backbone.sync超载,从而阻止主干推送到服务器(?)。理想情况下,我想将我的数据传递回服务器并在线时将其保存在本地,并在离线时使用localstorage(你知道,完美的应用程序)。我还没有找到任何文档。

Backbone.localStorage是其中的一部分吗? 有没有人能够建立这种情况? 这是怎么做到的? (请告诉我,我不必自己动手。)

感谢。

1 个答案:

答案 0 :(得分:45)

Backbone.localStorage是一个可以使用的外部文件,它会覆盖Backbone.Sync。

您可以使用简单的功能检测来确定用户是离线还是在线,然后在离线时异步加载Backbone.localStorage.js。

如果需要,您还可以将特定版本的Backbone.sync传递给您的模型和收藏品。

如果你想同时做两件事,你必须编写自己的Backbone.sync版本,它们都会调用服务器并调用localStorage。

最简单的方法是定义

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

修改

如评论中所述,如果您使用最新的主干localStorage plugin,那么您可以执行以下操作

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