【发布时间】:2016-07-01 07:42:54
【问题描述】:
参考Is it possible to avoid OOM when loading a large data set using Cordova? 和https://stackoverflow.com/a/28589093/3005222 给出的答案,我调整了 Kato 提供的 JSFiddle http://jsfiddle.net/firebase/AgBN7/ 以递归地翻阅大型 Firebase 数据集(而不是依靠用户单击下一页按钮) .
它使用ref.startAt(pri, lastKey).limitToFirst(100).once("value", ...) 遍历一个包含100 个节点的页面并将数据保存到一个局部变量中。然后继续到下一页等等。最后,我有我在我的应用程序中使用的数据的一个大的本地副本。这很好,但我现在想听听变化,我有两个选择:
选项 1:
将分页代码更改为使用.on() 而不是.once()
选项 2:
得到所有数据后,有一个ref.on("value", ...)
我的问题是,从性能角度来看,哪个选项更好?我做了这整个分页的事情,因为我的 Cordova 应用程序在使用ref.on("value",...) 一次性检索所有数据并将其更改为分页方法时崩溃了。现在我想知道如果我选择选项 1,它会创建很多活跃的听众吗?如果我选择选项 2,是否会使分页变得多余,即如果我已经使用 .once() 浏览了所有数据,添加 .on() 侦听器会做什么?
【问题讨论】:
标签: cordova memory firebase firebase-realtime-database