Javascript Firebase离线缓存&;原始firebase.js源代码
我的问题是一个后续问题。从目前为止我所看到的情况来看,我喜欢Firebase的简单性和性能 据我所知,firebase.js将数据快照从服务器同步到Javascript内存中的一个对象中。但是,目前没有将此数据缓存到磁盘的功能 因此:Javascript Firebase离线缓存&;原始firebase.js源代码,javascript,firebase,offline-caching,Javascript,Firebase,Offline Caching,我的问题是一个后续问题。从目前为止我所看到的情况来看,我喜欢Firebase的简单性和性能 据我所知,firebase.js将数据快照从服务器同步到Javascript内存中的一个对象中。但是,目前没有将此数据缓存到磁盘的功能 因此: 应用程序启动时需要有连接,因此没有真正的脱机访问 每次应用程序启动时都会通过重新传输以前的所有数据来浪费带宽 由于快照数据作为Javascript对象存储在内存中,因此将其序列化为JSON并保存到localStorage应该非常简单,这样下次启动应用程序时,无论是
(顺便说一句,有两个功能将帮助Firebase将竞争对手扫地出门:离线缓存和map reduce。)离线缓存和类似map reduce的功能都在开发中。firebase.js用于开发和调试 您可以使用在本地序列化快照以保留所有优先级数据。如果不使用优先级,则使用一个简单的值即可:
var fb = new Firebase(URL);
fb.once('value', function(snapshot) {
console.log('values with priorities', snapshot.exportVal());
console.log('values without priorities', snapshot.val());
});
稍后,如果在加载应用程序时Firebase处于脱机状态(用于帮助确定此状态),则可以调用将该数据放回本地Firebase。当/如果Firebase联机,它将被同步
然而,这确实只适用于只有一个人将访问和更改的静态数据。考虑一下,例如,如果我下载数据,把它保存在一个星期内,在那个时候它被其他几个用户修改,然后我把我的应用程序离线,做一个小的修改,然后上网。我的陈腐变化会把其间所做的所有工作都吹走
有很多方法可以解决这个问题——冲突解决、使用安全规则和更新计数器/时间戳来检测过时数据并防止回归——但这并不是一件简单的事情,在你开始这条路线之前需要深入考虑。请分别作为不同的问题;如果你的问题包含多个答案,那么很难评估“正确”或“有用”的答案。在“脱机缓存”标题下也很难找到“开源firebase.js”的答案:)好的一面是,iOS和Java/web很快就会实现磁盘持久化。嘿,加藤,有关于磁盘持久化的消息吗?正在进行中。Firebase邮件列表上有几个关于持久性的线程。