2011-02-07 14 views
15

¿Hay algún sistema de depuración que me permita grabar las llamadas a la función JavaScript y sus parámetros a medida que ocurren? esto me permitiría rastrear y depurar aplicaciones en situaciones de vivo/cliente sin el golpe de rendimiento debido al registro manual.Depuración en javascript en vivo mediante la grabación de llamadas a funciones y parámetros

Edit: No estoy hablando de llamar manualmente las funciones usando una ventana de 'consola' y ver los resultados, o agregar manualmente los comandos 'trace' o 'log' en mi javascript. Necesito que funcione con cualquier javascript en ejecución.

Respuesta

18

¿Puede anular Function.prototype.call y recuperar argumentos y arguments.callee?

Esto tendría el efecto de informar sobre TODAS las funciones y, por lo tanto, sería súper detallado, pero tal vez te gustaría filtrar.

Entonces usted tiene la cuestión de cómo desea informar, tal vez con si (consola) CONSOLE.LOG

+1

Esta es una idea genial. – mwilcox

+0

¡Fantástica idea, pero no se proporcionó GUI! Si tuviera alguna confirmación de que Dynatrace detectó llamadas de función, habría otorgado la recompensa allí, pero hasta entonces, la tuya es la mejor idea. –

+0

¿Alguien puede dar un ejemplo de esto? Si observa esta implementación (http://jsfiddle.net/b7Sny/) en IE o FF, solo hay una alerta cuando esperaría que hubiera dos. En otras palabras, esta respuesta parece funcionar si uso 'myfunction.call()', pero no si ejecuto 'myfunction()'. – user979672

0

Sí. todos los principales navegadores tienen un depurador incorporado (IE, Chrome, Safari) o están disponibles como complemento (Firebug para Firefox).

0

Firebug es bueno para esto. O también puedes usar el depurador incorporado de Google Chrome.

2

@Jenko si lo que buscas es algo similar a un depurador IDE, en ese caso, Internet Explorer 8 y 9 tienen herramientas de desarrollo incorporadas (presiona F12) y Chrome también tiene herramientas de desarrollo. Tanto IE como Chrome le permiten establecer puntos de interrupción en su código y recorrerlo mientras se está ejecutando. Firefox tiene Firebug, que otros han mencionado, y también permite establecer puntos de interrupción y examinar la ejecución de tu código. Opera tiene Dragonfly (incorporado) y tiene las mismas características que los otros navegadores.

0

para Firefox Firebug para IE deeloper herramienta para el cromo depurador integrado es agradable de usar

2

Mientras leía las respuestas y se ríe de las respuestas duplicadas de "Usted puede usar Firebug!" Me di cuenta ... puedes usar Firebug.

En serio, tiene un comando de "perfil" que hace exactamente lo que está pidiendo. Safari y Chrome tienen esta característica para que pueda verificar allí también. IE8/9 tiene una herramienta "profiler" que es similar (pero no sé si se puede invocar desde JavaScript con console.profile())

Esto le dará los tiempos precisos desde cualquier código y registro que agregue también afectaría el rendimiento real. Y debido a que esta característica se encuentra en los principales navegadores, obtienes una cantidad razonable de datos.

enter image description here

0

Podría decirse que la mejor línea Javascript Código Control de calidad es JSLint. No solo verifica el código en busca de errores, mejora el estilo de codificación de los programas por completo < <, esta es la razón por la cual el autor lo ha realizado en primer lugar. Mi Fireflow 0,02 $

http://www.jslint.com/

Cuestiones relacionadas