我应该缓存firebase refs吗?

时间:2016-10-01 01:32:58

标签: javascript performance caching firebase firebase-realtime-database

我正在开发一个支持firebase实时数据库的Web应用程序。

应用程序的前端非常复杂,有几种方法可以将数据写入数据库。我有几个这样的工具:

var utils = {
    setSomething: function(id, item) {
        var myRef = firebase.database().ref('my/path');
        myRef.set(item).then(something);
    }
}

这里的问题是:可以在方法内部创建一个新的Ref(从而在每次调用时创建一个新的ref),或者我应该在其他地方“缓存”ref(就像我们缓存jquery对象一样)。

我可以先做这样的事情:

var cachedRefs = {
    myRef: firebase.database().ref('my/path'),
    yourRef: firebase.database().ref('your/path'),
    herRef: firebase.database().ref('her/path')
}

然后前一种方法可以改写为:

var utils = {
    setSomething: function(id, item) {
        cachedRefs.myRef.set(item).then(something);
    }
}

除了减少代码重复之外,还有性能增益吗?

1 个答案:

答案 0 :(得分:4)

firebaser here

引用只包含数据库中的位置。它们很便宜。

将第一个侦听器添加到引用需要我们开始同步数据,因此这与您收听的数据一样昂贵。因此,添加额外的侦听器相对便宜,因为我们在侦听器之间重复数据同步。