PerfBar

8 хв. читання

Особливості

  • Проста установка. Тільки один сценарій, ніяких залежностей.

  • Десятки вбудованих метрик.

  • Можливість додати "кастомні" показники.

  • Ви можете відключити певну метрику.

  • Підтримка бюджетування всіх метрик.

Основи використання

      <title>PerfBar</title>
      <meta charset="utf-8">
      <meta content="IE=edge" http-equiv="X-UA-Compatible">
      <link href="stylesheets/stylesheet.css" rel="stylesheet" type="text/css">
      
      <script src="javascripts/perfBar.js" type="text/javascript"></script>
      <script type="text/javascript">
      perfBar.init({
        // список вбудованих метрик http://lafikl.github.io/perfBar/#list 
        budget: { 
          // ключе - це id метрики
          'loadTime': {
            max: 200
          },
          'redirectCount': {
            max: 1
          },
          'globalJS': {
            min: 2,
            max: 5
          }
        }
      });
      </script>

Метрики користувача

Кожна метрика повинна мати унікальний ідентифікатор або addMetric поверне помилку.

      <title>PerfBar</title>
      <meta charset="utf-8">
      <meta content="IE=edge" http-equiv="X-UA-Compatible">
      <link href="stylesheets/stylesheet.css" rel="stylesheet" type="text/css">

      <script src="javascripts/perfBar.js" type="text/javascript"></script>
      <script type="text/javascript">
      perfBar.init();
      
      var err = perfBar.addMetric({
        id: 'Test',
        label: 'Test new metric', // зрозуміла людині назва
        value: 18,
        budget: {
          max: 20,
          min: 1
        }
      });
     
      if ( !err ) console.log('Woho , no errors all is ok!');
      </script>

Оновлення метрики

.updateMetric (ID, UpdateObject)

id : ID метрики

UpdateObject : це об'єкт, який містить нові значення для метрики. Ви можете
оновити budget, label, value, unit
    
      <title>PerfBar</title>
      <meta charset="utf-8">
      <meta content="IE=edge" http-equiv="X-UA-Compatible">
      <link href="stylesheets/stylesheet.css" rel="stylesheet" type="text/css">
      
      <script src="javascripts/perfBar.js" type="text/javascript"></script>
      <script type="text/javascript">
      perfBar.init();
      
      var err = perfBar.addMetric({
        id: 'testId',
        label: 'Test new metric', // зрозуміла людині назва
        value: 18,
        budget: {
          max: 20,
          min: 1
        }
      });
     
      if ( !err ) console.log('Woho , no errors all is ok!');
      
      // Оновлення метрики - працює для всіх метрик, навіть вбудованих
      perfBar.updateMetric('testId', {
        value: 5
      })
      </script>

Включення / відключення метрики

      <title>PerfBar</title>
      <meta charset="utf-8">
      <meta content="IE=edge" http-equiv="X-UA-Compatible">
      <link href="stylesheets/stylesheet.css" rel="stylesheet" type="text/css">
      
      <script src="javascripts/perfBar.js" type="text/javascript"></script>
      <script type="text/javascript">
      perfBar.init();
      
      perfBar.disable('loadTime') // це прибере метрику з панелі
      perfBar.enable('loadTime') // це поверне метрику до панелі, зі старим значенням, бюджетом, міткою, блоком.
      </script>

"Ліниве" завантаження

      <title>PerfBar</title>
      <meta charset="utf-8">
      <meta content="IE=edge" http-equiv="X-UA-Compatible">
      <link href="stylesheets/stylesheet.css" rel="stylesheet" type="text/css">
      
      <script src="javascripts/perfBar.js" type="text/javascript"></script>
      <script type="text/javascript">
      // цей хороший варіант, якщо вам не хочеться завантажувати PerfBar сценарій 
      //  Тому що без Navigation timing метрика не спрацює, так як вона прикріпляється до onload event
      perfBar.init({lazy: true});
      
      </script>

Повний список вбудованих метрик

Час завантаження

Час завантаження сторінки. Він розраховується шляхом вирахування loadEventStart і navigationStart . Максимальне значення за замовчуванням: 5000 мс

Id: loadTime

Одиниця виміру: ms (мілісекунди)

Бюджет, max: 5000

Джерело: Navigation Timing API

Затримка

Час, необхідний для того щоб отримати перший байт від сервера.

Id: loadTime

Одиниця виміру: ms (мілісекунди)

Бюджет, max: 5000

Джерело: Navigation Timing API

Front End

Час, за який сторінка виконує "front-end", час між початком події responseEnd і викликом події OnLoad.

Id: frontEnd

Одиниця виміру: ms (мілісекунди)

Бюджет - Макс: 80% від загального часу завантаження сторінки, золоте правило продуктивності

Джерело: Navigation Timing API

Front End

Час сторінка займає зробити переднього кінця роботу, цей старт після responseEnd події і закінчується, коли OnLoad викликається подія.

Id: frontEnd

Одиниця виміру: ms (мілісекунди)

Бюджет - Макс: 80% від загального часу завантаження сторінки, золоте правило продуктивності

Джерело: Navigation Timing API

Тривалість відповіді

Час, який потрібен, щоб браузер Отримувати повну відповідь, починається подією responseStart і закінчується responseEnd.

Id: respnseDuration

Одиниця виміру: ms (мілісекунди)

Джерело: Navigation Timing API

Тривалість запиту

Час, який потрібен серверу, щоб відповісти після відправлення до нього запиту, починається з requestStart події і закінчується подією responseStart.

Id: requestDuration

Одиниця виміру: ms (мілісекунди)

Джерело: Navigation Timing API

Лічильник редіректів

Скільки редіректів знадобилося, щоб дістатися до певної сторінки?

Id: redirectCount

Джерело: Navigation Timing API

Тривалість завантаження події

Час, за який завантажилась подія.

Id: loadEventTime

Одиниця виміру: ms (мілісекунди)

Джерело: Navigation Timing API

Завантаження DOM вмісту

Час для отримання DOM елементів.

Id: DOMContentLoaded

Одиниця виміру: ms (мілісекунди)

Джерело: Navigation Timing API

Тривалість обробки

Кількість часу, за який браузер опрацьовує всю сторінку.

Id: processing

Одиниця виміру: ms (мілісекунди)

Джерело: Navigation Timing API

DOM елементи

Загальна кількість DOM елементів.

Id: numOfEl

Джерело: DOM

CSS

Загальна кількість CSS файлів на сторінці.

Id: cssCount

Джерело: DOM

JavaScript

Загальна кількість сценаріїв JavaScript на сторінці.

Id: jsCount

Джерело: DOM

Зображення

Загальна кількість зображень на сторінці.

Id: imgCount

Джерело: DOM

URI дані зображення

Загальна кількість даних URI даних зображень на сторінці.

Id: dataURIImagesCount

Джерело: DOM

Вбудований CSS

Загальна кількість вбудованого CSS на сторінці.

Id: inlineCSSCount

Джерело: DOM

Вбудований JavaScript

Загальна кількість вбудованого JavaScript на сторінці.

Id: inlineJSCount

Джерело: DOM

3rd Party CSS

Загальна кількість CSS-файлів, що завантажуються з 3rd party host.

Id: thirdCSS

Джерело: DOM

3rd Party JavaScript

Загальна кількість JS-файлів, що завантажуються з 3rd party host.

Id: thirdJS

Джерело: DOM

Глобальний JavaScript

Кількість обумовлених користувачем змінних в глобальній області JS. Наприклад $.

Id: globalJS

Джерело: DOM

Встановлення

NPM

    $ npm install perfbar
Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 5.8K
Приєднався: 8 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація