如何在没有过多负载的情况下在我的应用程序中显示日期?

How to display dates in my app without excessive load?

在我的应用程序中,我有 posts,在我的 post 页面中,我使用 moment 包将 posted 日期显示为 a minute ago .

我正在使用以下代码显示日期

Template.registerHelper("postedTime",function(date){
        return moment(date).fromNow();
 });

在我的 HTML

{{#with post}}    
.............
............
{{postedTime date}}
............
............
{{/with}}

我知道这些日期不是反应性的。在我的 post 中,我有数百条评论也具有相同的日期格式。

在不给客户端浏览器带来太多负载的情况下更新所有这些计时的最佳方法是什么?

日期本身不是反应式的,因此您需要在您的助手中包含一个反应式数据源以强制它重新运行。

在此示例中,我们将更新一个会话变量,该变量将强制每 60 秒重新评估 postedTime 的所有实例:

Template.registerHelper('postedTime', function(date) {
  Session.get('timeToRecompute');
  return moment(date).fromNow();
});

setInterval(function() {
  Session.set('timeToRecompute' new Date);
}, 60 * 1000);