我聊天应用程序,我加载它最后5条信息,像这样做延迟排序:流星的js
{{#if haseMoreMessages}}
<div class="loadmore text-center" id="incLimit">Load More</div>
{{/if}}
{{#each messages}}
{{> message}}
{{/each}}
messages: function(){
var messages = Messages.find({},{sort:{createdAt:1}}); // I can remove {sort:{createdAt:1}} and all ok, nut it's not fit
return messages;
},
haseMoreMessages:function(){
if (Session.get('messageLimit') > Messages.find().count()) return false;
return true;
}
Messages.find({room: Rooms.findOne({users : { $in : [this.userId]}})._id},{ sort: { createdAt: -1 } , limit : limitM});
所以,当我写新邮件,超过100ms以上它显示在顶部,和200毫秒或更长时间后它显示在底部,例如:
- mes1
- mes2
- mes3
我写mes4
- mes4
- mes1
- mes2
- mes3
经过一番ms
- mes1
- mes2
- mes3
- mes4
当我从var messages = Messages.find({},{sort:{createdAt:1}})
删除{sort:{createdAt:1}}
都显示正常,内部消除延迟,但当我点击显示更多按钮,所有旧消息显示在底部,但它们必须显示在页面的TOP上。这就是为什么我需要{sort:{createdAt:1}}
所以任何想法我能做什么?
你在哪里设置'createdAt'?在客户端还是在服务器上? –
你的代码非常混乱,因为你没有说明它是如何分解成文件和客户端和服务器的。如果你解决了这个问题,它可以帮助我们帮助你。 –
createAt在服务器上,你需要哪部分代码?我会显示它 – Qwe