как следить за производительностью приложения AngualrJS + spring-boot

0

Я работал над AngualrJS + весенним загрузочным приложением. нам нужно будет показать производительность каждой страницы для пользователя, например, сколько времени занимает страница для загрузки всех данных?

  1. любые плагины для этого? еще не найден

  2. часть, которая нас блокирует, один запрос был объединен с несколькими вызовами ajax, как рассчитать все эти вызовы и отправить их обратно, я имею в виду, как монитор сети Chrome, показывает точное время загрузки.

Теги:
spring-boot
performance

1 ответ

0
Лучший ответ

Примечание. Любой запрос увеличит время загрузки, код, как показано ниже, не может знать, когда остановить монитор.

Я провел некоторое исследование и нашел это http://www.bennadel.com/blog/2777-monitoring-http-activity-with-http-interceptors-in-angularjs.htm

И я использую перехватчик для создания своего профилировщика:

<!--some html-->
<div>{{profiler.time}}</div>

angular.module('app')
    .run(function ($rootScope){
        $rootScope.$on('$stateChangeStart', function (event) {
            Profiler.reset();
            $rootScope.profiler = Profiler;
        });
    })
    .config(function ($httpProvider){
        $httpProvider.interceptors.push('profilerInterceptor');
    })
    .factory('profilerInterceptor', function ($q, Profiler) {
        return {
            request: function (request) {
                if (Profiler.startTime == null) {
                    Profiler.startTime = new Date();
                }
                return request;
            },
            response: function (response) {
                Profiler.refresh();
                return response;
            }
        };
    })
    .service('Profiler', function () {
        return {
            startTime: null,
            endTime: null,
            time: 0,
            reset: function () {
                this.startTime = null;
            },
            refresh: function () {
                this.endTime = new Date();
                this.time = (this.endTime - this.startTime) / 1000;
            }
        };
    });

Ещё вопросы

Сообщество Overcoder
Наверх
Меню