Автоматическое сообщение об ошибках JavaScript для разработчика - PullRequest
7 голосов
/ 12 апреля 2010

Как и в большинстве производственных сред, мы настроили что-то, чтобы отправить нам уведомление в случае ошибки в нашем веб-приложении. Проблема, конечно, в том, что это распространяется только на ошибки на стороне сервера.

Мой вопрос к сообществу: что вы делаете с ошибками на стороне клиента, особенно в javascript?

А как насчет других проблем с качеством обслуживания, таких как медленная обработка и другие проблемы, которые могут быть связаны с клиентским компьютером?

Ответы [ 2 ]

8 голосов
/ 12 апреля 2010

Вы можете обрабатывать ошибки JavaScript на стороне клиента с помощью window.onerror event

Внутри обработчика сделайте Ajax-запрос к вашему майнеру ошибок на стороне сервера и зарегистрируйте ошибку.

http://www.javascriptkit.com/javatutors/error.shtml

Hovewer window.onerror поддерживается не во всех браузерах, jQuery может заполнить пробел собственным обработчиком событий: комбинация window.onerror и jQuery (window) .error должна быть достаточной

7 голосов
/ 12 апреля 2010

Нет ничего особенного, что вы можете сделать с ошибками JavaScript на стороне клиента. Вы можете перехватить window.onerror и использовать его для AJAX отчета, но:

(а) он не поддерживается в WebKit или Opera. Чтобы перехватить все ошибки, вам нужно обернуть каждую точку входа прямого выполнения, события и тайм-аута в try { ... }, что очень грязно и дает вам даже меньше информации, чем обработчик onerror.

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

  • соединения с сайтами, на которых размещены скрипты или AJAX не работает или блокируется брандмауэрами;

  • неожиданные настройки безопасности (в браузерах есть опции для произвольной блокировки многих интерфейсов);

  • неработающие надстройки браузера, GreaseMonkey-подобные скрипты, фильтрация прокси-серверов и фальшивые инструменты «Internet Security», работающие с вашим кодом;

  • неподдерживаемые агенты, которые ведут себя странно, например мобильные браузеры (особенно ужасающий IEMobile) и, если у них есть доступ, роботы с автоматическим браузером;

  • много ошибок, вызванных сторонним контентом, таким как реклама, если таковые имеются.

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

Лучше всего использовать «прогрессивное улучшение», чтобы гарантировать, что ваше приложение по-прежнему работает в случае сбоя JavaScript.

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