gpt4 book ai didi

javascript - Firebase 何时加载数据?

转载 作者:行者123 更新时间:2023-11-29 19:38:30 24 4
gpt4 key购买 nike

我的数据按日期和增量 ID 排序,如下所示:

  • 20140622
    • value_1
    • value_2
  • 20140623
    • value_3
    • value_4

为了检测何时添加新日期,我设置了一个 on('child_added') 监听器,然后设置了另一个 on('child_added') 监听器来检测该日期内的新值,因为 on('child_added') 是仅针对直系 child 触发。

为了避免使用双带宽并加快加载速度,我想知道该快照的所有数据的传输发生在哪个时刻:当我定义新的 child 时或当我使用 .val( ) 功能?

最佳答案

当您使用 on() 或 once() 建立监听器时会下载数据,并在本地缓存并保持同步,直到所有监听器断开连接。

通常没有必要为嵌套子级建立一个 child_added 监听器,因为它们已经作为父级的一部分存在于下载的数据中:

var ref = new Firebase(URL);
ref.on('child_added', function(snap) {
console.log('parent rec', snap.name());
snap.forEach(function(childSnap) {
console.log('child rec', childSnap.name());
});
});

但是,嵌套的 child_added 事件也没有坏处;这一切都由 Firebase 在内部进行了优化,这些值将立即从本地缓存的数据中返回:

var ref = new Firebase(URL);
ref.on('child_added', function(snap) {
console.log('parent rec', snap.name());
snap.ref().on('child_added', function(snap) {
console.log('child rec', snap.nam());
});
});

这里唯一需要注意的是,如果您想稍后在这些事件监听器上调用 off(),则必须在服务器连接被切断并清除所有缓存数据之前将它们全部断开。

关于javascript - Firebase 何时加载数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24361890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com