Pergunta

Im executando um site ASP.NET onde tenho problemas para encontrar alguns erros de JavaScript apenas com o teste manual.

Existe a possibilidade de pegar todos os erros de JavaScript no Clientside e registrá-los no servidor ou seja, no EventLog (via Webservice ou algo parecido)?

Foi útil?

Solução

Você pode tentar definir o seu próprio manipulador para o onerror evento e uso XMLHttpRequest para informar o servidor que deu errado, no entanto, uma vez que não faz parte de qualquer especificação, é um pouco escamosa .

Aqui está um exemplo de Usando XMLHttpRequest para registrar erros de JavaScript :

window.onerror = function(msg, url, line)
{
  var req = new XMLHttpRequest();
  var params = "msg=" + encodeURIComponent(msg) + '&url=' + encodeURIComponent(url) + "&line=" + line;
  req.open("POST", "/scripts/logerror.php");
  req.send(params);
};

Outras dicas

Resposta curta:. Sim, é possível

resposta mais longa: As pessoas têm já escrito sobre como você pode (pelo menos parcialmente) resolver este problema, escrever seu próprio código. No entanto, note que existem serviços lá fora, que parece ter feito se o código JS necessários trabalhos em muitos navegadores. Eu encontrei o seguinte:

Eu não posso falar para qualquer um desses serviços, como eu não tentei ainda.

acabo implementado o registo de erros do lado do servidor em erros de javascript em um projeto no trabalho. Há uma mistura de código de legado e de nova código usando jQuery .

Eu uso uma combinação de window.onerror e envolvendo os manipuladores de eventos jQuery e função onready com uma função de tratamento de erros (ver: Acompanhamento de erro JavaScript: Por window.onerror Is Not Enough )

.
  • window.onerror:. Pega todos os errrors em IE (ea maioria dos erros no Firefox), mas não faz nada no Safari e Opera
  • jQuery manipuladores de eventos:. Pega erros de evento jQuery em todos os navegadores
  • função pronto jQuery: capturas de inicialização erros em todos os navegadores
  • .

Uma vez eu peguei o erro, eu adicionar algumas propriedades extras para ele (url, navegador, etc) e, em seguida, postá-lo de volta para o servidor usando uma chamada ajax.

No servidor eu tenho uma pequena página que só tem os argumentos e saídas os colocaram à nossa estrutura de log do servidor normal.

eu gostaria de código aberto o código para isso (como um plugin jQuery). Se alguém estiver interessado me avise, ele iria ajudar a convencer os patrões!

Se você usa o Google Analytics, você pode registrar erros de javascript em eventos do Google Analytics.

Veja este app: http://siteapps.com/app/log_javascript_errors_with_ga-181

Hope isso ajuda.

Também eu recomendo usando TraceTool utilidade, ele vem com suporte a JavaScript e é muito útil para o monitoramento JS.

Se você está querendo registrar o do lado do cliente erros de volta ao servidor que você vai ter que fazer algum tipo de processamento do servidor. Melhor aposta seria ter um serviço web que pode ser acessado via JavaScript (AJAX) e você passar suas informações de log de erro para ele.

Será que não é 100% resolver o problema porque se o problema é com o servidor web que hospeda o serviço web que está em apuros, você é outra opção seria a de enviar a informação através de uma página padrão por meio de uma string de consulta, um método de fazer isso é através gerando dinamicamente tags de imagem (que são então removidas) como o navegador irá tentar carregar a origem de uma imagem. Ele fica em torno de cross-domain chamadas JavaScript bem embora. Tenha em mente que você está em apuros se alguém tem imagens desligado;)

Eu tenho usado Appfail recentemente, que captura tanto asp.net e erros de JavaScript

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 unidade JavaScript testar em vez disso? Possivelmente com JsUnit ?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top