2016-10-01 123 views
1

我正在開發一個支持Firebase實時數據庫的Web應用程序。我應該緩存Firebase參考嗎?

該應用程序的前端是相當複雜的,有幾種方法將數據寫入數據庫。我有幾個utils的是這個樣子:

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

這裏的問題是:這是好創建方法內一個新的參考(因此,創建每次調用一個新的裁判),還是應該我「緩存」其他地方的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); 
    } 
} 

是否有除了具有更少的代碼重複任何性能增益?

回答

4

這裏firebaser

引用只包含在數據庫中的位置。他們很便宜。

將第一個偵聽器添加到引用需要我們開始同步數據,這樣就像您收聽的數據一樣昂貴。因此,添加額外的偵聽器會相對便宜,因爲我們會在偵聽器之間去重複數據同步。