Cómo depurar un problema de JavaScript que no se puede volver a crear

No das muchas indicaciones sobre el contexto que aparece, así que insertaré un contexto personalizado. Supongo que “no se puede recrear” significa que no puede reproducir un error que ha enviado un usuario. Este es un patrón común, es decir, “funciona en mi máquina”, con el que el desarrollo ha tenido problemas durante un tiempo.

Si no puede reproducir un error utilizando los mismos pasos que informan los usuarios, generalmente hay tres razones para ello.

  1. No está siguiendo los mismos pasos que los usuarios están utilizando. Verifica que lo eres; grabar su pantalla si es necesario.
  2. Su instancia de la aplicación no está en la misma instancia que la del usuario. Asegúrese de cargar datos similares, preferiblemente los mismos, antes de seguir los pasos.
  3. Su entorno (conexión a Internet, navegador, versión del navegador, sistema operativo, tamaño de pantalla, …) no es el mismo que el del usuario. Intente hacer coincidir el entorno lo mejor posible, use el mismo navegador (o node.js, si corresponde), la misma versión, etc., tanto como pueda.

Tenga en cuenta que, especialmente si está utilizando una aplicación web y está cargando recursos de forma remota, es posible que los recursos tarden un tiempo diferente en cargarse o que no se cargue por completo. El momento de las solicitudes remotas también puede ser diferente. Dado que esta es una situación común, Chrome en realidad tiene un simulador de rendimiento de red que puede ayudarlo a identificar problemas basados ​​en la red.

Si todo lo demás falla, y nadie puede reproducir el problema, ni siquiera los usuarios, entonces tal vez el problema fue causado porque alguien tenía una versión anterior de un archivo de recursos (por ejemplo, la biblioteca de JavaScript) en su caché.

Es poco probable que el problema se deba a un aspecto funcional del código (hasta que esté utilizando la función Aleatoria o eval () en el código).

Quiero decir que el código es solo un conjunto repetitivo de instrucciones, sin embargo, puede haber un error debido a otros factores que puede observar:

  1. Una posibilidad es el uso de funciones / variables aleatorias en la base de código.
  2. Otra posibilidad puede ser desbordamiento / fuga de memoria.
  3. Puede haber errores debido a la inestabilidad de la red, la configuración del entorno, etc.

La técnica de eliminación generalmente funciona bien para mí en estas circunstancias. Comience con una lista de todas las posibles fuentes de problemas y luego intente eliminar las que está seguro de que no pueden ser la causa principal.

Hablando de mi experiencia, la clave para resolver este problema es “intentar” y ser paciente hasta que encuentre el problema.

More Interesting

Cómo probar aplicaciones AngularJS

¿Cuál es la diferencia entre Rails (Ruby on Rails) y otros marcos de aplicaciones web?

Estudiantes de secundaria que buscan asesoramiento: ¿Cómo podemos mejorar el diseño de nuestro sitio web? http://thefias.co/

¿Cómo puedo obtener la ruta absoluta de un archivo usando JavaScript?

¿Por qué, a pesar de la popularidad de Facebook y Wikipedia, la gente dice que PHP es malo?

Como desarrollador web, ¿qué herramientas consideró una pérdida de tiempo y cuáles son esenciales?

¿Podría Ford / Mercury haber construido un híbrido de gas / eléctrico utilizando el chasis y la suspensión Crown Vic / Marquis para continuar con este vehículo tan popular?

¿Cuáles son mis mejores opciones para un servidor web asequible y confiable para mis proyectos Rails y WordPress?

¿Cómo redirijo la URL raíz a la interfaz de inicio de sesión en Limesurvey?

¿Cuáles son los casos de uso de Thrift, es decir, qué razones hay para considerar el uso de Thrift cuando uno podría confiar en JSON y solicitudes HTTP estándar?

Cómo integrar la autenticación de inicio de sesión en mi sitio personalizado con su contraparte de WordPress

¿Qué debo aprender a continuación en PHP después del formulario HTML y el manejo de consultas SQL?

¿Qué CMS es el mejor para construir un sitio web de redes sociales de alta gama?

Cómo depurar un problema de JavaScript que no se puede volver a crear

¿Cómo se puede mejorar la codificación en el front-end?