У меня есть сайт ASP.NET, на котором у меня возникают проблемы с поиском некоторых ошибок JavaScript только при ручном тестировании.
Есть ли возможность перехватить все ошибки JavaScript на стороне клиента и зарегистрировать их на сервере, то есть в журнале событий (через веб-сервис или что-то в этом роде)?
javascript
logging
error-handling
MADMap
источник
источник
Ответы:
Вы можете попробовать настроить свой собственный обработчик для события onerror и использовать XMLHttpRequest, чтобы сообщить серверу, что пошло не так, однако, поскольку он не является частью какой-либо спецификации, поддержка несколько нестабильна .
Вот пример из использования XMLHttpRequest для регистрации ошибок JavaScript :
источник
setInterval
методе. В Интернете доступно множество сервисов отчетов об ошибках JS. Оформить заказ ErrLytics . Он также дает вам аналитику каждого действия пользователя на вашем сайте.Краткий ответ: да, это возможно.
Более длинный ответ: люди уже писали о том, как можно (хотя бы частично) решить эту проблему, написав свой собственный код. Однако обратите внимание, что существуют службы, которые, похоже, убедились, что необходимый код JS работает во многих браузерах. Я нашел следующее:
Я не могу говорить ни об одной из этих услуг, поскольку еще не пробовал их.
источник
Я только что реализовал ведение журнала ошибок на стороне сервера при ошибках javascript в рабочем проекте. Это смесь старого и нового кода, использующего jQuery .
Я использую комбинацию
window.onerror
и упаковку обработчиков событий jQuery и функции onready с функцией обработки ошибок (см .: Отслеживание ошибок JavaScript: почему window.onerror недостаточно ).window.onerror
: ловит все ошибки в IE (и большинство ошибок в Firefox), но ничего не делает в Safari и Opera.Как только я обнаружил ошибку, я добавляю к ней некоторые дополнительные свойства (URL, браузер и т. Д.), А затем отправляю их обратно на сервер с помощью вызова ajax.
На сервере у меня есть небольшая страница, которая просто принимает опубликованные аргументы и выводит их в нашу обычную структуру ведения журнала сервера.
Я хотел бы открыть исходный код для этого (как плагин jQuery). Если кому интересно, дайте знать, это поможет убедить начальство!
источник
Если вы используете Google Analytics, вы можете регистрировать ошибки javascript в событиях Google Analytics.
См. Это приложение: http://siteapps.com/app/log_javascript_errors_with_ga-181
Надеюсь, поможет.
источник
Также рекомендую использовать утилиту TraceTool , она поддерживает JavaScript и очень удобна для мониторинга JS.
источник
Если вы хотите регистрировать ошибки на стороне клиента обратно на сервер, вам нужно будет выполнить какую-то обработку сервера. Лучше всего будет иметь веб-службу, к которой вы можете получить доступ через JavaScript (AJAX), и вы передадите ей информацию из журнала ошибок.
Не на 100% решает проблему, потому что если проблема связана с веб-сервером, на котором размещена веб-служба, у вас проблемы, другим вариантом будет отправка информации через стандартную страницу через строку запроса. это делается посредством динамической генерации тегов изображений (которые затем удаляются), когда браузер попытается загрузить источник изображения. Тем не менее, он прекрасно обходит междоменные вызовы JavaScript. Имейте в виду, что у вас проблемы, если у кого-то отключены изображения;)
источник
Недавно я использовал Appfail , который фиксирует ошибки как asp.net, так и JavaScript.
источник
Вы потенциально можете сделать Ajax-вызов сервера из try / catch, но, вероятно, это лучшее, что вы можете сделать.
Могу я предложить вместо этого модульное тестирование JavaScript? Возможно с JSUnit ?
источник