kashey
@kashey
Программирую большую половину жизни

Javascript: Отслеживание ошибок на клиентах

Преамбула:
Чтобы зафиксировать ошибку на клиенте достаточно переопределить window.onerror куда будут сваливаться все ошибки js которые раньше бы всплывали наверх, либо проходили незамеченно.
Например ошибки загрузки js файлов, в том числе банальные 404

Итак, берем проект который гарантированно работает во всех браузерах, это много раз проверенно и не одним тестером.
Выставляем указанный хэндлер, всеми правдами и неправдами пытаемся вытащить из пришедшего еррора информацию, после чего отправляем на сервер.
Года два назад я, чтобы не учить тестеров азам отладки, запустил что-то подобное на gdeetotdom.ru, результаты были достаточно оригинальными — ошибок было много, в основном ошибки были при загрузки( точнее не загрузке) скриптов — так например, оказывается, у многих заблокирован google.com ну и vk, что в принципе понятно.
Иногда правда в логе появлялись не идентифицируемые ошибки, от любого браузера. Script error и больше ничего.
По моим данным еррорилось примерно 10% клиентов. И где-то 50% из них отваливалось совсем.

Чтож, не так давно я запустил похожую систему на другом проекте.
Результаты на этот раз плачевнее — те же 10% клиентов, только для меня это значит 2к ошибок в час, и ошибки стали другого рода — в основном синтаксические.
Незакрытые скобки, неизвестные функции( в том числе из не загруженных скрипов, а сообщения о их незагрузки то — нет)

Но что меня напрягает — сколько бы я не пытался на указанной в логе странице под указанным браузером найти плохое место — не получается.
Все там чисто( и запаковано )

И наконец вопрос — быть может кто знает секреты и техники отлова багов которые вроде как есть, но вы их сами, и десяток тестеров никогда видели.
  • Вопрос задан
  • 3601 просмотр
Пригласить эксперта
Ответы на вопрос 3
akzhan
@akzhan
Хотелось бы заметить, что onerror не всеми браузерами поддерживается.

Кстати, полезный плагин по теме: github.com/Undev/js_exceptions
Ответ написан
Комментировать
k12th
@k12th
console.log(`You're pulling my leg, right?`);
А вы вместе с ошибками юзер-агент отсылаете на сервер? Кто эти 10%?
Ответ написан
@Panya
Это вполне могут быть не настоящие ошибки в JS-коде, а последствия работы разных антивирусов и файрволов на стороне клиента, а также серверных прокси-серверов, которые тоже могут модифицировать контент.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы