Перехват ошибок на front-end с помощью js

Некоторые ошибки происходят на стороне пользователя и не попадают в логи на сервере. В этом могут быть виноваты настройки сети, плагины браузера, которые установил пользователь, политики безопасности или антивирус, которые блокируют загрузку некоторых файлов.

О наличии такой проблемы сложно узнать, т.к. обычный пользователь едва ли станет тратить своё время, чтобы сообщить о ней, а в логах на сервере вы их просто не увидите.

Предлагаемый подход основан на обработке в js ошибок объекта браузера window и отправке этих данных на сервер.

Пусть скрипт на сервере находится по адресу: /front-end/logger. Он читает GET параметры и где то их сохраняет. А пока нужно выполнить перехват и обработку ошибки на front-end:

Скрипт собирает следующий пакет данных:

Если удаётся получить http код ошибки, то скорее всего вы найдете её и в логах на веб-сервере (либо в логах одного из прокси или кеширующих серверов). Если же вместо http кода вы получаете ‘FETCH ERROR’, то файл был блокирован до запроса на сервер и надо разбираться почему это происходит со стороны пользователя.

Ошибки типа LINK — это ошибки при загрузке CSS/JS файлов. Они могут сильно влиять на работу сайта, им нужно уделить пристальное внимание.

Back-end часть logger-а для Drupal

Придумать куда писать логи на back-end, вам не составит труда для вашего частного случая. Но у меня есть готовый вариант для cms drupal 7, и я им здесь поделюсь.

Одна функция объявляет end-point для вызова логирования, а вторая функция — запись лога в системный лог cms.

Мало букафф? Читайте есчо !

Организация не дискретной навигации в Swiper

Март 21, 2025 г.

Один из режимов навигации в Swiper - называется freemode. Он позволяет листать слайды (тащить мышкой или свайпить) без фиксации на границах слайда. Но если вы используете навигацию, то перелистывание будет производиться дискретно по слайдам. В ...

Читать

Меняем поведение корневого пункта меню bootstrap dropdown

Апрель 14, 2022 г.

В bootstrap корневой пункт меню с подпунктами (dropdown menu) не является активной ссылкой и лишь служит кнопкой для развертывания подпунктов. Тем временем ...

Читать

Как получить кол-во слайдов в slick слайдере

Апрель 9, 2024 г.

Слайдер классный, а вот документация какая то вялая. Сначала нужно найти DOM элемент, куда подключен slick, а потом получить объект слайдера, в котором можно прочитать множество свойств, в том числе и число слайдов: [crayon-6996e8d7c3edb236624004/]

Читать

Ищем видимые элементы, используя jQuery

Апрель 22, 2016 г.

В CSS такого селектора нет, в вот jQuery предоставляет. Впрочем, нужно понимать, какие объекты jQuery считает видимыми, а какие наоборот -невидимыми. К примеру, видимым будет считаться и объект с visiblity: hidden и объект с opacity: 0. Они хоть ...

Читать
 

Комментарии к «Перехват ошибок на front-end с помощью js»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: