这是我的情景.当通过浏览器事件帖子页面加载添加子项时,我想在标题中指出它.但是在页面加载时,也会调用添加的子项.
如何区分添加的初始子项与实际添加新条目的子项.
蒂姆,谢谢
Firebase非常故意不将"初始"数据与"新"数据区分开来.在大多数情况下,这允许更简单的开发,因为您只需要为数据编写一组逻辑,而不是处理初始数据案例和新数据案例.
在这种情况下,我可以看到你希望如何区分.我不确定你到底在做什么,但是如果你正在构建一个聊天应用程序,你可能想根据最新消息的时间戳来刷新标题,而不是它是否是"新"消息.如果在加载页面之前稍微发送消息,这将允许标题在页面加载时闪烁,这可能是期望的.在其他一些情况下,您可能实际上想要为未读数据刷新标题,并且您可能需要考虑将子项标记为"已读"并仅为显示没有"读取"位的子项闪烁标题.这将允许事物在页面刷新之间无缝地工作.
如果您绝对需要知道"新"数据何时显示,您可以尝试使用"一次"和"值"事件类型来获取数据,然后使用"on"和startAt查询以及"child_added"事件类型之后显示新数据.它看起来像这样:
var data = new Firebase(...);
data.once("value", function(d) {
//TODO: display initial state...
data.startAt(null, <last id in snapshot>).on("child_added", function(newMessSnapshot) {
//TODO: render new child and flash title bar.
}
}
Run Code Online (Sandbox Code Playgroud)
或者如果您想以非常简单的方式进行操作,您可以设置一个计时器,以便在页面加载的前N秒内收到的任何消息都不会闪烁标题.
希望有所帮助!
| 归档时间: |
|
| 查看次数: |
1174 次 |
| 最近记录: |