我是 Angular 的新手,请原谅我的无知,但我正在努力了解如何在不重新加载页面的情况下实时轮询数据,以便一切都在后台发生。我使用 setInterval 每 5000 毫秒获取一次数据,但据我了解,这对浏览器来说很昂贵,因为我不断加载 json 文件。
如果服务器上有新数据,观察或获取的最佳解决方案是什么?这样当 json 文件被新用户(朋友)更新时,页面将提供新数据,而无需我重新加载页面或点击按钮刷新。我基本上是在寻找实时。
看法:
<h1>{{title}}</h1>
<ul>
<li ng-repeat="friend in friends"><strong>Name: </strong>{{friend.name}} : {{friend.username}}</li>
</ul>
获取数据的服务:
angular
.module ('myApp')
.factory ('Friends', ['$http', function ($http) {
return {
get: function () {
return $http.get ('users.json').then (function (response) {
return response.data;
});
}
};
}]);
控制器 :
angular
.module ('myApp')
.controller ('summaryCtrl', ['$scope', 'Friends', function ($scope, Friends) {
$scope.title = "Friends";
$scope.loadData = function () {
Friends.get ().then (function (data) {
$scope.friends = data;
});
};
//initial load
$scope.loadData();
var timer = setInterval(function(){
$scope.loadData();
},5000);
}]);
非常感谢您的帮助,如果问题没有任何意义,再次抱歉。