我有一个用Nodejs编写的服务器来收集数据。我的客户端是用AngularJS编写的。我需要每两秒创建一次http请求到我的服务器(setInterval)并显示更新的数据。我的服务器全天候运行。如果达到最大值,chrome会阻止我的请求吗?我可以实现另一种方式,而不是从客户端创建请求,也许是从我的服务器推送?
某些请求的示例:
var indicesTimer = setInterval(getIndices,2000);
getIndices();
function getIndices(){
dataService.getIndices().then(function(res){
$scope.recentIndeces = res.data;
});
}
答案 0 :(得分:0)
检查$interval服务。
var stop = $interval(function() {
// Your code
}, 100);
使用您的代码
var indicesTimer = $interval(getIndices,2000);
getIndices();
function getIndices(){
dataService.getIndices().then(function(res){
$scope.recentIndeces = res.data;
});
}
答案 1 :(得分:0)
您可以使用websocket。通过使用它,您的服务器可以通知您的客户端,以防服务器端发生更改,因此您不必进行轮询(轮询是您每隔x秒发送请求时所执行的操作)。看一下socket.io
答案 2 :(得分:0)
这是心跳的典型行为。 Chrome或任何其他浏览器不会阻止请求。
只要你的setInterval()
处理程序不能永远运行,它就不会阻止其他事情最终运行。