Meteor-使用RESTAPI中的新数据集每5分钟刷新一次页面
这就是我们试图实现的,我们需要每五分钟调用一个API,并在meteor中刷新一个页面,我们不希望使用MongoDB;因此,API调用是在模板呈现和显示输出之前直接进行的 下面是代码片段-我每5分钟调用一次API,并在模板呈现期间在会话变量中设置它Meteor-使用RESTAPI中的新数据集每5分钟刷新一次页面,meteor,Meteor,这就是我们试图实现的,我们需要每五分钟调用一个API,并在meteor中刷新一个页面,我们不希望使用MongoDB;因此,API调用是在模板呈现和显示输出之前直接进行的 下面是代码片段-我每5分钟调用一次API,并在模板呈现期间在会话变量中设置它 Template.list.rendered = function(){ Meteor.setInterval(function(){ Meteor.call('getListFromAPI', function(error,data)
Template.list.rendered = function(){
Meteor.setInterval(function(){
Meteor.call('getListFromAPI', function(error,data){
if(error){
console.log(error);
}
else{
Session.set('availableList', data);
}
});
}, 60000);
}
下面是一个帮助函数,它将“availableList”返回到HTML进行渲染-
Template.list.helpers({
'getList': function(){
return Session.get('availableList');
}
});
问题:
它的工作原理是每五分钟刷新一次页面,但问题是当页面第一次加载时,它会在呈现之前等待五分钟
我是Meteor的新手,有没有其他更好的方法可以将会话变量移动到服务器上,但服务器端不支持会话。
我可以理解被动源“session-availableList”应该从呈现函数中移除,但我不确定使用什么方法
如果您有任何问题,请告诉我。即使您使用的是
Meteor
方法,这实际上只是一个Javascript问题。请参阅以了解如何解决此问题
基本上,你只需要在你开始你的间隔之前调用你的方法,这样看起来就像这样
Template.list.rendered = function(){
Meteor.call('getListFromAPI', function(error,data){
if(error){
console.log(error);
}
else {
Session.set('availableList', data);
}
}
Meteor.setInterval(function(){
Meteor.call('getListFromAPI', function(error,data){
if(error){
console.log(error);
}
else{
Session.set('availableList', data);
}
});
}, 60000);
}
另外,作为旁注,我很确定你已经知道了。。。但是
60000
ms仅为1分钟。Hi,感谢您的快速回复;它工作了,是的,我只有60000毫秒(1分钟)用于测试。