【问题标题】:Why is $firebaseArray slow on display?为什么 $firebaseArray 显示缓慢?
【发布时间】:2016-02-22 15:25:19
【问题描述】:

首先让我说我是 Firebase 的新手。由于我一直在玩 angularfire,我注意到 $firebaseArray 在我的项目中有点慢......

但是当我使用控制台查找 when 收到来自 firebase 的结果时,我意识到在该结果到达后在离子视图中显示之前有一秒钟。

如果我说的不是很清楚,这里是带有 $firebaseArray 的 codepen

var lists = $firebaseArray(ref.child('lists'));

这是另一个 [codepen](抱歉不能添加超过两个链接),我在 之后添加了这一行

lists = [{"name":"test"}];

在两个 codepen 中都有一个警报和控制台日志,显示数据何时到达。

我要问的是:为什么在数据已经到达之后会有第二次延迟?

编辑:

因为“慢”并不真正意味着什么,我为第一个 codepen 截取了浏览器网络的屏幕截图,显示了显示数据需要多少时间: screenshot

【问题讨论】:

  • “慢”是高度主观的。你衡量什么行动?多久时间?您预计需要多长时间?另请注意,虽然您添加了指向 codepen 的链接很棒,但您的问题应包含重现问题的最少代码。
  • 我的意思是“慢”,因为数据已经已经从 firebase 到达(在我的 codepen 中,它在警报出现时可用),然后有一段时间才会出现显示(显示它大约需要 1 或 2 秒。我认为这是一个 lot,因为数据已经到达。它需要做的就是显示它,但它仍然需要几秒钟去做吧)。所以我尝试使用本地 JSON 数组来做这件事,这一次在数据可用(相同的警报)后它会立即显示......
  • 它在 0..0001 毫秒内对我来说显示速度很快......这可能与您的计算机有关。我对此无话可说..
  • @Dsafds first codepen 需要几毫秒(使用 $firebaseArray)?如果您在谈论第二个(使用 JSON),那么这很正常。但是第一个,我实际上在具有不同互联网连接的不同计算机上尝试过,快速的仍然需要 1 秒,而慢速的则需要 6 秒
  • 是的,大约需要 0.3 秒

标签: ionic-framework firebase angularfire


【解决方案1】:

即使我在找到这个帖子时并没有真正寻找它,但我的问题的答案在这里给出了:

Asynchronous access to an array in Firebase

当浏览器执行你的 console.log(userTokens);数据很可能尚未加载。所以它只是打印对象 到控制台作为占位符。

当它到达 for 循环时,数据可能有也可能没有 已从 Firebase 加载。

在某些时候,您单击了记录的用户令牌旁边的箭头。经过 那时数据已从 Firebase 加载,控制台显示 最新数据。

无论如何,感谢您在尝试回答我的问题时提供的帮助:)

【讨论】:

    猜你喜欢
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多