Pregunta

Im ejecución de un ASP.NET Sitio donde tengo problemas para encontrar algunos Errores de JavaScript sólo con manual de pruebas.

Existe una posibilidad de atrapar todos los Errores de JavaScript en el Clientside y registro en el Servidor es decir,en el registro de Sucesos (a través de Webservice o algo así)?

¿Fue útil?

Solución

Usted podría tratar de establecer su propio controlador para el evento onerror y el uso de XMLHttpRequest para decirle al servidor lo que salió mal, sin embargo, ya que no se parte de ninguna especificación, el apoyo es algo escamosa.

He aquí un ejemplo de El uso de XMLHttpRequest para registro de errores 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);
};

Otros consejos

Respuesta corta: Sí, es posible.

Respuesta larga: Las personas ya han escrito acerca de cómo se puede (al menos parcialmente) a resolver este problema mediante la escritura de su propio código.Sin embargo, tenga en cuenta que hay servicios que parece haber hecho asegurarse de que el código JS necesarias obras en muchos navegadores.He encontrado los siguientes:

No puedo hablar de cualquiera de estos servicios como no he probado todavía.

He implementado el lado del servidor de registro de errores de errores de javascript en un proyecto en el trabajo.Hay una mezcla de código heredado y el nuevo código de usar jQuery.

Yo uso una combinación de window.onerror y envolviendo el jQuery controladores de eventos y onready función con un error de control de la función (ver: Error De JavaScript De Seguimiento:¿Por qué la ventana.onerror No Es Suficiente).

  • window.onerror:las capturas de todos los errrors en IE (y la mayoría de los errores en Firefox), pero no hace nada en Safari y Opera.
  • jQuery controladores de eventos:capturas de eventos de jQuery errores en todos los navegadores.
  • jQuery listo función:las capturas de la inicialización de los errores en todos los navegadores.

Una vez que he cogido el error, puedo agregar algunas propiedades adicionales a la misma (url, el navegador, etc) y, a continuación, publicarlo en el servidor mediante una llamada ajax.

En el servidor tengo una pequeña página que sólo lleva a la publicación de los argumentos y de las salidas a nuestros normal de registro de servidor de marco.

Me gustaría abrir el código fuente de este (como un plugin de jQuery).Si alguien está interesado que me haga saber, sería de gran ayuda para convencer a los jefes!

Si utiliza Google Analytics, puede de registro de errores de javascript en Google Analytics Eventos.

Ver esta aplicación: http://siteapps.com/app/log_javascript_errors_with_ga-181

Espero que ayude.

También recomiendo el uso de TraceTool utilidad, viene con soporte para JavaScript y es muy útil para JS de monitoreo.

Si estás queriendo registro de los errores del lado del cliente en el servidor que vamos a tener que hacer algún tipo de procesamiento del servidor.Mejor apuesta sería la de tener un servicio web que se puede acceder a través de JavaScript (AJAX) y pasar el error de registro de información para él.

No 100% a resolver el problema porque si el problema es con el servidor web que aloja el servicio web que estás en problemas, tienes otra opción sería enviar la info a través de una página a través de una cadena de consulta, Un método de hacer esto es a través de la generación dinámica de etiquetas de Imagen (que luego se retiran) como el navegador intentará cargar el origen de una imagen.Se pone alrededor de la cruz-dominio de llamadas a funciones JavaScript muy bien aunque.Tenga en cuenta que usted está en problemas si alguien ha desactivado las imágenes ;)

He estado usando Appfail recientemente, la que captura tanto asp.net y los errores de JavaScript

Usted podría hacer una llamada Ajax al servidor de un try/catch, pero eso es probablemente lo mejor que puedes hacer.

Sugiero JavaScript pruebas de unidad en su lugar?Posiblemente con JSUnit?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top