我正在尝试为我的网站管理员创建简单的通知系统,我只需要向每个管理员用户发送实时消息.但是当我使用firebase时,它会在每个页面上加载旧数据,并且用户可以看到来自数据库的所有消息.如果我设置limit(1),用户将在每个页面重新加载时看到最后一个通知:
var eventsList = new Firebase('https://*****-messages.firebaseio.com/');
eventsList.on('child_added', function(message) {
var message = message.val();
$.notification(message.message);
});
Run Code Online (Sandbox Code Playgroud)
如何在没有旧通知历史的情况下仅加载新邮件?
Ana*_*ant 37
这是设计的,在实时系统中没有"最新"数据的概念,因为它总是在变化.但是,如果您只想在页面加载后显示添加到列表中的项目,则可以执行以下操作:
var newItems = false;
var eventsList = new Firebase('https://*****-messages.firebaseio.com/');
eventsList.on('child_added', function(message) {
if (!newItems) return;
var message = message.val();
$.notification(message.message);
});
eventsList.once('value', function(messages) {
newItems = true;
});
Run Code Online (Sandbox Code Playgroud)
小智 6
我会评论上面的内容,但由于声誉我不能,所以希望这是足够的,这是为了解决Gruff McGruff的最后评论.
一旦发生火灾,因为你想要摆脱抓住所有儿童物品的循环.一旦该循环被破坏,您将newItems变量设置为true,然后它将能够获得所有新的子项.
如果您之前解雇了它,它将失败目的并获取所有子项,无论您是否立即设置newItems变量.
此外,我使用了这种方法,效果很好.
| 归档时间: |
|
| 查看次数: |
16572 次 |
| 最近记录: |