当我初始化我的应用以从FB检索我的所有数据时,我正在使用ref.on("value", myfunc)
。由于要检索相当多的数据,我想显示加载符号,直到myfunc
实际运行。
有没有办法做到这一点?我现在能想到的唯一方法是:
hasChildren
以检查是否有要接收的数据。on
监听器调用myfunc
后,隐藏加载图片。我只是想知道Firebase是否提供了更优雅的方式吗?
答案 0 :(得分:1)
我错过了明显的解决方案。将回调函数传递给myfunc
意味着我可以启动加载图像并在运行回调函数时将其删除。
答案 1 :(得分:1)
也许我误解了你在做什么,但我认为你甚至不需要致电hasChildren
。即使在该位置没有孩子,也会调用传递给ref.on()
的回调函数。
以下是一个示例:http://jsfiddle.net/92uabp30/7/
我认为这与你正在做的类似。在这里,我有一个“正在加载...”div
和一个“输出”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
,您会看到它是空的。运行该示例时,您将看到无论如何都要调用回调函数。