首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >延迟分拣:流星Js

延迟分拣:流星Js
EN

Stack Overflow用户
提问于 2015-08-29 16:39:03
回答 1查看 55关注 0票数 1

我有聊天应用程序,我在里面加载了最后5条消息,就像这样

代码语言:javascript
运行
复制
{{#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});

因此,当我编写新消息时,100 on或更多的消息显示在顶部,200 on或更多的消息显示在底部,例如:

-mes1

-mes2

-mes3

我写mes4

-mes4

-mes1

-mes2

-mes3

在一些ms之后

-mes1

-mes2

-mes3

-mes4

当我从{sort:{createdAt:1}}中删除var messages = Messages.find({},{sort:{createdAt:1}})时,所有的消息都显示为ok,没有延迟,但是当我单击“显示更多”按钮时,但是显示所有旧消息都显示在底部,但是它们必须显示在页面的顶层上。所以我需要{sort:{createdAt:1}}

你知道我能做什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-29 17:15:42

根据您的注释,插入发生在客户机上,但是createdAt字段仅在服务器上填充。因此,Meteor首先使用没有createdAt字段的本地数据库来显示插入结果。然后,在对服务器进行往返并对查询进行更新之后,按预期进行排序。

有两个选项:完全在服务器上插入,或者将createdAt字段附加到客户机上。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32288352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档