我应该缓存防火基准吗?
Should I cache firebase refs?
我正在开发一个支持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
引用只包含数据库中的位置。它们很便宜。
将第一个侦听器添加到引用需要我们开始同步数据,因此这与您侦听的数据一样昂贵。添加额外的侦听器相对便宜,因为我们跨侦听器去重复数据同步。
相关文章:
- 如何在从浏览缓存加载页面时执行javascript
- ReactJS和SpringDataRest缓存问题可能与websocket有关
- 缓存谷歌地图数据
- 防止jQuery Mobile中的ajax缓存
- image.onload事件和浏览器缓存
- Javascript清除缓存以清除基本身份验证凭据
- 使用jquery.load('pageName')方法时,未从应用程序缓存加载Html页
- 将脚本缓存到本地存储的basket.js概念仍然是一个好主意吗
- 阻止选项卡缓存jquery ui
- 强制浏览器更新缓存的HTML5视频对象
- 在Javascript中使用全局变量作为缓存是很好的
- 缓存!saveLocations()和addLocation()函数有什么区别
- 微软边缘浏览器缓存中的RESTful Angular应用程序
- 浏览器坚持使用旧的html和JS缓存
- 浏览器是否持久缓存脚本元素的编译版本
- 登录后重定向,缓存页面问题-Javascript
- Angular2他们如何保存到缓存
- ASP.NET IIS应用程序中的客户端脚本缓存
- 如何缓存AJAX请求的图像
- 我应该缓存防火基准吗?