我正在开发一个支持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);
}
}
除了减少代码重复之外,还有性能增益吗?
答案 0 :(得分:4)
firebaser here
引用只包含数据库中的位置。它们很便宜。
将第一个侦听器添加到引用需要我们开始同步数据,因此这与您收听的数据一样昂贵。因此,添加额外的侦听器相对便宜,因为我们在侦听器之间重复数据同步。