Особливості
-
Проста установка. Тільки один сценарій, ніяких залежностей.
-
Десятки вбудованих метрик.
-
Можливість додати "кастомні" показники.
-
Ви можете відключити певну метрику.
-
Підтримка бюджетування всіх метрик.
Основи використання
<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
Ще немає коментарів