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