检测 Firebase 初始 on(value) 完成
Detect Firebase initial on(value) completion
当我初始化我的应用程序以从 FB 检索我的所有数据时,我正在使用 ref.on("value", myfunc)
。由于有相当多的数据要检索,我想显示一个加载符号,直到 myfunc
实际获得 运行.
有什么办法吗?我现在唯一能想到的方法是:
- 先运行在相关FB节点上
hasChildren
查看是否有数据接收
- 如果有,显示加载图像。
- 一旦
on
侦听器调用 myfunc
然后隐藏加载图像。
我只是想知道 Firebase 是否提供了一种更优雅的方式来执行此操作?
我错过了明显的解决方案。给myfunc
传一个回调函数,就是说我可以发起加载图片,当回调函数为运行.
时,我就可以把它移除了
也许我误解了你在做什么,但我认为你甚至不需要打电话给 hasChildren
。即使该位置没有 children,您传递给 ref.on()
的回调函数也会被调用。
举个例子:http://jsfiddle.net/92uabp30/7/
我认为这与您所做的类似。这里我有一个 "Loading..." div
和一个 "output" div
:
function getMyData(){
$("#loading").show();
$("#output").hide();
new Firebase("https://examples-sql-queries.firebaseio.com/user/999").on('value', show);
}
以及回调函数:
function show(snap) {
$('pre').text(JSON.stringify(snap.val(), null, 2));
$("#output").show();
$("#loading").hide();
}
如果您检查 https://examples-sql-queries.firebaseio.com/user/999
,您会发现它是空的。当你 运行 这个例子时,你会看到回调函数无论如何都会被调用。
当我初始化我的应用程序以从 FB 检索我的所有数据时,我正在使用 ref.on("value", myfunc)
。由于有相当多的数据要检索,我想显示一个加载符号,直到 myfunc
实际获得 运行.
有什么办法吗?我现在唯一能想到的方法是:
- 先运行在相关FB节点上
hasChildren
查看是否有数据接收 - 如果有,显示加载图像。
- 一旦
on
侦听器调用myfunc
然后隐藏加载图像。
我只是想知道 Firebase 是否提供了一种更优雅的方式来执行此操作?
我错过了明显的解决方案。给myfunc
传一个回调函数,就是说我可以发起加载图片,当回调函数为运行.
也许我误解了你在做什么,但我认为你甚至不需要打电话给 hasChildren
。即使该位置没有 children,您传递给 ref.on()
的回调函数也会被调用。
举个例子:http://jsfiddle.net/92uabp30/7/
我认为这与您所做的类似。这里我有一个 "Loading..." div
和一个 "output" div
:
function getMyData(){
$("#loading").show();
$("#output").hide();
new Firebase("https://examples-sql-queries.firebaseio.com/user/999").on('value', show);
}
以及回调函数:
function show(snap) {
$('pre').text(JSON.stringify(snap.val(), null, 2));
$("#output").show();
$("#loading").hide();
}
如果您检查 https://examples-sql-queries.firebaseio.com/user/999
,您会发现它是空的。当你 运行 这个例子时,你会看到回调函数无论如何都会被调用。