我应该缓存防火基准吗?

Should I cache firebase refs?

本文关键字:基准 缓存 我应该      更新时间:2023-09-26

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

应用程序的前端是相当复杂的,有几个方法写入数据到数据库。我有几个utils,看起来像这样:

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);
    }
}

除了减少代码重复之外,是否有任何性能增益?

firebase here

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

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