Estou executando um site ASP.NET onde tenho problemas para encontrar alguns erros de JavaScript apenas com testes manuais.
Existe a possibilidade de capturar todos os erros de JavaScript no lado do cliente e registrá-los no servidor, ou seja, no EventLog (via Webservice ou algo parecido)?
javascript
logging
error-handling
MADMap
fonte
fonte
Respostas:
Você pode tentar configurar seu próprio manipulador para o evento onerror e usar XMLHttpRequest para informar ao servidor o que deu errado, no entanto, como não faz parte de nenhuma especificação, o suporte é um tanto instável .
Aqui está um exemplo de Uso de XMLHttpRequest para registrar erros de JavaScript :
fonte
setInterval
método. Existem muitos serviços de relatório de erros JS disponíveis na web. Saída ErrLytics . Ele também fornece análises de todas as ações do usuário em seu site.Resposta curta: Sim, é possível.
Resposta mais longa: as pessoas já escreveram sobre como você pode (pelo menos parcialmente) resolver esse problema escrevendo seu próprio código. No entanto, observe que existem serviços por aí que parecem garantir que o código JS necessário funcione em muitos navegadores. Eu encontrei o seguinte:
Não posso falar por nenhum desses serviços porque ainda não os experimentei.
fonte
Acabei de implementar o log de erro do lado do servidor em erros de javascript em um projeto no trabalho. Há uma mistura de código legado e novo código usando jQuery .
Eu uso uma combinação
window.onerror
e envolvimento dos manipuladores de eventos jQuery e função onready com uma função de tratamento de erros (consulte: Rastreamento de erro de JavaScript: Por que window.onerror não é suficiente ).window.onerror
: captura todos os erros no IE (e a maioria dos erros no Firefox), mas não faz nada no Safari e Opera.Depois de detectar o erro, adiciono algumas propriedades extras a ele (url, navegador, etc.) e, em seguida, envio-o de volta ao servidor usando uma chamada ajax.
No servidor, tenho uma pequena página que apenas pega os argumentos postados e os envia para nossa estrutura de registro normal do servidor.
Eu gostaria de abrir o código para isso (como um plugin jQuery). Se alguém estiver interessado me avise, ajudaria a convencer os patrões!
fonte
Se você usa o Google Analytics, pode registrar erros de javascript nos eventos do Google Analytics.
Veja este aplicativo: http://siteapps.com/app/log_javascript_errors_with_ga-181
Espero que ajude.
fonte
Também recomendo usar o utilitário TraceTool , ele vem com suporte a JavaScript e é muito útil para monitoramento de JS.
fonte
Se você quiser registrar os erros do lado do cliente de volta no servidor, terá que fazer algum tipo de processamento do servidor. A melhor aposta seria ter um serviço da web que você pudesse acessar via JavaScript (AJAX) e passar as informações do log de erros para ele.
Não resolve 100% o problema porque se o problema for com o servidor da web que hospeda o serviço da web, você está em apuros, sua outra opção seria enviar as informações por meio de uma página padrão por meio de uma string de consulta. Um método de fazer isso é por meio da geração dinâmica de tags de imagem (que são removidas), pois o navegador tentará carregar a origem de uma imagem. No entanto, ele contorna bem as chamadas JavaScript de domínio cruzado. Lembre-se de que você estará em apuros se alguém desligar as imagens;)
fonte
Tenho usado o Appfail recentemente, que captura erros do asp.net e do JavaScript
fonte
Você poderia potencialmente fazer uma chamada Ajax para o servidor a partir de um try / catch, mas isso é provavelmente o melhor que você pode fazer.
Posso sugerir um teste de unidade de JavaScript em vez disso? Possivelmente com JSUnit ?
fonte