Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Meteor中设置会话变量更改的动画?_Meteor - Fatal编程技术网

在Meteor中设置会话变量更改的动画?

在Meteor中设置会话变量更改的动画?,meteor,Meteor,我让Meteor.setInterval在我的收藏中查找一个最近的项目,然后每1秒在会话中设置一次 Meteor.setInterval(function() { var entries = Database.findOne({}, { sort: { date: -1} }); Session.set('entryName', entries); }, 1200); 我需要这个,因为它只获取最近的条目,并防止其他条目泛滥,因为它每秒只触发一次。是否有动画制作的方法,比如说添加淡入淡

我让Meteor.setInterval在我的收藏中查找一个最近的项目,然后每1秒在会话中设置一次

Meteor.setInterval(function() {
  var entries = Database.findOne({}, { sort: { date: -1} });
  Session.set('entryName', entries); 
}, 1200);
我需要这个,因为它只获取最近的条目,并防止其他条目泛滥,因为它每秒只触发一次。是否有动画制作的方法,比如说添加淡入淡出效果?这是一个问题,因为如果我按间隔设置动画,它将每秒淡入淡出,即使没有添加新条目


我需要它淡出只有当条目改变。是否有更好的方法以Meteor方式重写代码,使其更易于制作动画?

确实,您希望在此处使用observeChanges而不是计时器。Meteor已经在监视您的收藏的更改,并将在发生更改时触发observeChanges事件。这可能是您想要的:

var throttled=\ u0.throttlefunction{ 设置'entryName',字段; //在这里做你的动画 },1000; Database.find{},{sort:{date:-1},limit:1}.observeChanges{ 添加:functionid,字段{throttled}; } };
这就是我所做的,非常有趣的方式:

Database.find({}, {sort: {date: -1}, limit: 1}).observeChanges({
  addedBefore: function(id, fields) {
      var isItOn = true
      Session.set('isItTrue', isItOn);     
  }
});
然后在下面:

Meteor.setInterval(function() {
  var isItOn = Session.get('isItTrue');
    if (isItOn === true) {

// Place Animation Here

   var entries = Database.findOne({}, { sort: { date: -1} });      
   Session.set('entryName', entries);
   var isItOn = false;   
   Session.set('isItTrue', isItOn);
  }
}, 1200); 

另外请注意,我在使用“added”时收到了一个错误,必须先使用“addedBefore”。

感谢Christian,我会尝试一下,唯一的问题是我不确定它是否考虑了洪水。数据库将被许多用户快速更新,所以我需要它每隔几秒钟只显示一个条目。我将尝试向会话添加间隔。获取maybe@LisaS我添加了一个限制更新速度的节流阀。@MichelFloyd我今天早些时候用了一种有趣的方法,效果很好。不确定哪一个更有效。我放置了一个变量,该变量将在每次观察到内部更改时设置为“true”。observeChanges并将其放置在session.set中。接下来我做了一个会话。获取Meteor.setInterval中的真相。我把它放在数据库的if语句中。findOne我会把它写下来below@MichelFloyd事实上,我尝试了节流方法,但它不起作用。它怎么不起作用?它没有设置变量还是没有减慢设置速度?