我一直在试验Backbone.js的本地存储模块(https://github.com/jeromegn/Backbone.localStorage)。据我所知,这会使Backbone.sync超载,从而阻止主干推送到服务器(?)。理想情况下,我想将我的数据传递回服务器并在线时将其保存在本地,并在离线时使用localstorage(你知道,完美的应用程序)。我还没有找到任何文档。
Backbone.localStorage是其中的一部分吗? 有没有人能够建立这种情况? 这是怎么做到的? (请告诉我,我不必自己动手。)
感谢。
答案 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);
};