0

我是 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);

    }]);

非常感谢您的帮助,如果问题没有任何意义,再次抱歉。

4

0 回答 0