Driver.js предоставляет встроенные возможности для отслеживания и логирования различных этапов пользовательских туров. Логирование событий позволяет анализировать поведение пользователя, фиксировать ошибки в сценариях и улучшать взаимодействие с интерфейсом.
Для начала работы с логированием необходимо создать экземпляр
Driver и подписаться на его события через метод
on. Driver.js поддерживает следующие основные события:
start – срабатывает при запуске
тура.stop – вызывается при завершении
тура.next – фиксируется при переходе к
следующему шагу.previous – фиксируется при возврате к
предыдущему шагу.elementClick – срабатывает при клике
на элемент, на котором установлен шаг.highlighted – событие подсветки
элемента на шаге.reset – фиксируется при сбросе
текущего тура.Пример подписки на события:
const driver = new Driver();
driver.on('start', () => {
console.log('Тур начат');
});
driver.on('next', (step) => {
console.log(`Переход к следующему шагу: ${step.id}`);
});
driver.on('stop', () => {
console.log('Тур завершён');
});
Каждый шаг тура в Driver.js имеет уникальный идентификатор и набор
параметров (id, popperOptions,
description, nextBtnText,
prevBtnText). Для подробного анализа можно логировать
информацию о каждом шаге при его активации.
driver.on('highlighted', (element, step) => {
console.log('Элемент подсвечен:', element);
console.log('Текущий шаг:', step.id);
console.log('Описание шага:', step.description);
});
Такой подход позволяет отслеживать, какие элементы пользователь видит и на каких шагах происходят потенциальные проблемы.
Для удобства анализа рекомендуется использовать фильтры и структурированные форматы, например JSON. Это позволяет интегрировать логи с внешними аналитическими системами или инструментами мониторинга.
driver.on('elementClick', (element, step) => {
const logEntry = {
event: 'elementClick',
stepId: step.id,
elementTag: element.tagName,
timestamp: new Date().toISOString()
};
console.log(JSON.stringify(logEntry));
});
Такой формат облегчает последующий анализ и построение статистики по действиям пользователей.
Driver.js может работать с динамическими элементами, которые могут отсутствовать на странице. В таких случаях полезно логировать ошибки, чтобы выявить проблемные шаги.
driver.on('error', (error, step) => {
console.error('Ошибка в шаге', step.id, 'Сообщение:', error.message);
});
Логи можно сохранять не только в консоль, но и на сервер или локальное хранилище для последующего анализа:
driver.on('next', (step) => {
const log = {
action: 'next',
stepId: step.id,
time: Date.now()
};
localStorage.setItem(`driverLog_${step.id}`, JSON.stringify(log));
});
Использование локального хранилища или отправка данных на сервер позволяет собирать статистику использования туров в реальном времени и выявлять проблемные зоны интерфейса.
Логи Driver.js легко интегрируются с любыми системами аналитики, например Google Analytics или собственными сервисами мониторинга:
driver.on('next', (step) => {
fetch('/log-driver-event', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ event: 'next', stepId: step.id, timestamp: Date.now() })
});
});
Такой подход позволяет создавать детальную статистику и строить отчёты о прохождении пользовательских туров.
Можно создать обёртку для всех событий, чтобы централизованно вести журнал действий пользователя:
const events = ['start', 'stop', 'next', 'previous', 'highlighted', 'elementClick', 'reset', 'error'];
events.forEach(event => {
driver.on(event, (data, step) => {
console.log(`[${new Date().toISOString()}] Событие: ${event}`, step ? step.id : '', data);
});
});
Такой подход упрощает управление логами, снижает дублирование кода и обеспечивает единый стандарт ведения журнала.
Эти методы позволяют строить детальное логирование работы туров Driver.js, фиксировать ошибки и поведение пользователей, а также интегрировать данные с внешними системами аналитики для анализа интерфейса и улучшения UX.