Depuración con Chrome DevTools

Rate this content
Bookmark

Jecelyn compartirá algunos consejos y trucos para ayudarte a depurar tu aplicación web de manera efectiva con Chrome DevTools.

This talk has been presented at JSNation Live 2021, check out the latest edition of this JavaScript Conference.

FAQ

Puedes usar el comando run en Chrome DevTools escribiendo el comando shift P y luego escribir la función que necesitas, como 'media' para acceder al panel de medios o 'capture' para realizar una captura de pantalla.

Sí, puedes personalizar los atajos de teclado en Chrome DevTools. Ve a configuración, luego a atajos, y desde ahí puedes modificar los atajos existentes o agregar nuevos.

Para depurar un desplegable que se cierra al inspeccionarlo, puedes usar el comando run, escribir 'focus' y seleccionar la opción de emular una página con enfoque. Esto permite que el desplegable permanezca visible para su inspección.

El inspector de memoria en Chrome DevTools te permite inspeccionar el búfer de matriz de JavaScript y la memoria WASM. Establece un punto de interrupción, actualiza la página y haz clic en el nuevo icono junto al valor del búfer para usar el inspector.

Mantén presionada la tecla shift y coloca el mouse sobre la solicitud en la tabla de solicitudes. DevTools resaltará los iniciadores en verde y las dependencias en rojo, proporcionando una visualización clara de las relaciones.

Puedes filtrar la lista de solicitudes de red por tamaño usando palabras clave como 'mayor que 15 KB' para encontrar solicitudes más grandes que 15 KB, o usar el signo negativo para excluir ciertos resultados, como '-200' para excluir todas las solicitudes con estado 200.

Las expresiones en vivo te permiten fijar expresiones de JavaScript en la parte superior de la consola para que se actualicen en tiempo real. Simplemente haz clic en el icono de crear expresiones en vivo, escribe tu expresión y observa cómo el valor se actualiza automáticamente.

Los fragmentos en Chrome DevTools te permiten guardar y ejecutar código JavaScript frecuentemente usado. Ve al panel de fuentes, abre el panel de fragmentos, crea un nuevo fragmento y guárdalo. Luego, usa el comando P para ejecutarlo directamente desde el menú de comandos.

Para mantener los cambios entre cargas de página, usa anulaciones locales. Selecciona el panel de fuentes, elige el panel de anulaciones, selecciona una carpeta y permite el acceso a DevTools. Ahora puedes editar y guardar cambios que se mantendrán tras actualizar la página.

Jecelyn Yeen
Jecelyn Yeen
11 min
11 Jun, 2021

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Aquí tienes algunos consejos para utilizar mejor DevTools, incluyendo el uso del comando de ejecución, personalización de atajos de teclado y emulación del efecto de enfoque. Aprende cómo inspeccionar la memoria, utilizar el panel de red para tener más control sobre las solicitudes de red y aprovechar las utilidades de la consola. Guarda código frecuentemente utilizado como fragmentos y utiliza anulaciones locales para facilitar la edición. Optimiza las imágenes utilizando un formato más optimizado como AVIF y realiza un seguimiento de los cambios en el panel de red para ver el tamaño de datos reducido.
Available in English: Debugging with Chrome DevTools

1. Consejos para aprovechar mejor DevTools

Short description:

Soy Jasleen Yin, la defensora del desarrollador de Chrome DevTools en Google. Aquí hay algunos consejos para aprovechar mejor DevTools para la depuración: usa el comando run para acceder rápidamente a paneles y funciones, personaliza tus propios atajos de teclado y emula el efecto de enfoque para depurar desplegables. Estén atentos para la próxima función.

Hola a todos, soy Jasleen Yin. Trabajo en Google. Soy la defensora del desarrollador de Chrome DevTools. Como desarrollador web, uso Chrome DevTools todos los días para depurar mis aplicaciones web.

Permítanme compartir con ustedes algunos consejos que pueden ayudarles a aprovechar mejor DevTools para la depuración. El primer consejo es sobre cómo llegar al panel o función que necesitas más rápido con el comando run. Por ejemplo, si quiero depurar mi video, puedo ir al comando run, escribir media y hacer clic enter para abrir el panel de medios. O si quiero capturar una captura de pantalla de una página, puedo usar el comando run con el atajo de teclado comando shift P y escribir capture. Aquí puedes ver una lista de opciones de captura de pantalla. Desplázate por la lista. Te sorprenderá ver cuántos comandos puedes ejecutar. El comando run me ayuda a ahorrar memoria en mi cerebro porque a veces simplemente no recuerdo qué panel abrir para emular el tema de CSS, por ejemplo.

A continuación, hay un montón de atajos de teclado en DevTools, pero nosotros, como humanos, tenemos una memoria limitada. En lugar de memorizar los atajos predefinidos de DevTools, ahora puedes personalizar tus propios atajos. Ve a configuración, atajos. Puedo personalizar el atajo del comando run. Puedo reemplazar el atajo actual comando shift P o agregar otro atajo, por ejemplo, opción C para el mismo comando. Si estás usando Visual Studio Code como editor de código, también puedes asignar los atajos a eso.

A continuación, hay momentos en los que quiero depurar mi desplegable de búsqueda. Sin embargo, cuando hago clic derecho en inspeccionar en el cuadro de búsqueda, el desplegable desaparece. Esto es molesto. Quiero decir, solo quiero depurar el desplegable. Por favor, ayuda. Tranquilízate. Saquemos el comando run y escribamos focus. Selecciona la opción de emular una página con enfoque. Problema resuelto. La razón es que el desplegable se activa cuando el usuario se enfoca en la entrada. Así que usa DevTools para emular el efecto de enfoque y listo.

A continuación, una nueva función.

2. Inspección de memoria, Panel de red y Consola

Short description:

Para la inspección de memoria, utiliza el inspector de memoria para inspeccionar los búferes de matriz y la memoria WASM. En el panel de red, encuentra los iniciadores y dependencias de las solicitudes de red, cambia el agente de usuario y utiliza filtros para tener un mayor control. En la consola, utiliza expresiones en vivo para realizar un seguimiento de los valores en tiempo real y aprovecha las utilidades de la consola.

Para aquellos que trabajan mucho con la memoria, ahora pueden utilizar el inspector de memoria para inspeccionar el búfer de matriz de JavaScript y la memoria WASM. Por ejemplo, aquí tengo un búfer de matriz. Vamos a establecer un punto de interrupción y actualizar la página. Observa el nuevo icono junto al valor del búfer. Haz clic en él para revelar el inspector de memoria. Luego puedes navegar y reanudar la ejecución del script para inspeccionar los cambios de memoria en tiempo real. Obtén más información sobre el inspector de memoria en esta documentación.

A continuación, veamos el panel de red. A veces queremos saber los iniciadores o dependencias de una solicitud de red en particular. Mantén presionada la tecla shift y coloca el mouse sobre la solicitud en la tabla de solicitudes. DevTools colorea los iniciadores en verde y las dependencias en rojo. Luego, puedes cambiar el agente de usuario en la pestaña de condiciones de red. Por ejemplo, si quieres asegurarte de que tu página funcione para la optimización de motores de búsqueda porque algunos servidores o configuraciones de CDN pueden bloquear los rastreadores de forma predeterminada. Puedes depurar este comportamiento haciendo clic en el icono de condiciones de red, elegir Google Bot en el menú desplegable y actualizar la página para ver si se producen errores. También puedes establecer un agente de usuario personalizado si no se encuentra en la lista. A continuación, algunos consejos sobre el filtro de red. Puedes filtrar la lista por tamaño. Aquí, uso la palabra clave `mayor que` para encontrar las solicitudes que son más grandes que 15 KB. ¿Y si quiero encontrar todas las solicitudes más pequeñas que 15 KB? Puedo usar el signo negativo para negar el resultado de este filtro. Por ejemplo, puedes excluir todas las solicitudes con estado 200 con el filtro de código de estado negativo 200.

A continuación, pasemos a la consola. Si te encuentras escribiendo la misma expresión de JavaScript una y otra vez durante la depuración, considera utilizar las expresiones en vivo. De esta manera, escribes una expresión una vez y luego la fijas en la parte superior de tu consola. El valor de las expresiones se actualiza casi en tiempo real. Me gustaría hacer un seguimiento de las imágenes punteadas en esta página. Haz clic en el icono de crear expresiones en vivo y escribe document.querySelectorOrImg.length. Haz clic derecho y duplica el elemento de imagen ahora. Mira, el número se actualiza automáticamente. ¿Genial, verdad? También hay algunas utilidades útiles de la consola que pueden ahorrarte tiempo de escritura. Ahora mismo, usamos document.querySelectorOr para obtener las imágenes punteadas de la página.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Depuración Web Moderna
JSNation 2023JSNation 2023
29 min
Depuración Web Moderna
Top Content
This Talk discusses modern web debugging and the latest updates in Chrome DevTools. It highlights new features that help pinpoint issues quicker, improved file visibility and source mapping, and ignoring and configuring files. The Breakpoints panel in DevTools has been redesigned for easier access and management. The Talk also covers the challenges of debugging with source maps and the efforts to standardize the source map format. Lastly, it provides tips for improving productivity with DevTools and emphasizes the importance of reporting bugs and using source maps for debugging production code.
El Futuro de las Herramientas de Rendimiento
JSNation 2022JSNation 2022
21 min
El Futuro de las Herramientas de Rendimiento
Top Content
Today's Talk discusses the future of performance tooling, focusing on user-centric, actionable, and contextual approaches. The introduction highlights Adi Osmani's expertise in performance tools and his passion for DevTools features. The Talk explores the integration of user flows into DevTools and Lighthouse, enabling performance measurement and optimization. It also showcases the import/export feature for user flows and the collaboration potential with Lighthouse. The Talk further delves into the use of flows with other tools like web page test and Cypress, offering cross-browser testing capabilities. The actionable aspect emphasizes the importance of metrics like Interaction to Next Paint and Total Blocking Time, as well as the improvements in Lighthouse and performance debugging tools. Lastly, the Talk emphasizes the iterative nature of performance improvement and the user-centric, actionable, and contextual future of performance tooling.
Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Debugging JavaScript is a crucial skill that is often overlooked in the industry. It is important to understand the problem, reproduce the issue, and identify the root cause. Having a variety of debugging tools and techniques, such as console methods and graphical debuggers, is beneficial. Replay is a time-traveling debugger for JavaScript that allows users to record and inspect bugs. It works with Redux, plain React, and even minified code with the help of source maps.
pnpm: un gestor de paquetes rápido y eficiente para JavaScript
DevOps.js Conf 2022DevOps.js Conf 2022
31 min
pnpm: un gestor de paquetes rápido y eficiente para JavaScript
pnpm is a fast and efficient package manager that gained popularity in 2021 and is used by big tech companies like Microsoft and TikTok. It has a unique isolated node module structure that prevents package conflicts and ensures each project only has access to its own dependencies. pnpm also offers superior monorepo support with its node module structure. It solves the disk space usage issue by using a content addressable storage, reducing disk space consumption. pnpm is incredibly fast due to its installation process and deterministic node module structure. It also allows file linking using hardlinks instead of symlinks.
De la Fricción al Flujo: Depuración con Chrome DevTools
JSNation 2024JSNation 2024
32 min
De la Fricción al Flujo: Depuración con Chrome DevTools
The Talk discusses the importance of removing frictions in the debugging process and being aware of the tools available in Chrome DevTools. It highlights the use of the 'Emulate a Focus Page' feature for debugging disappearing elements and the improvement of debugging tools and workflow. The Talk also mentions enhancing error understanding, improving debugging efficiency and performance, and the continuous improvement of DevTools. It emphasizes the importance of staying updated with new features and providing feedback to request new features.
Más allá de las listas virtuales: Cómo renderizar 100K elementos con 100s de actualizaciones/seg en React
React Advanced 2021React Advanced 2021
27 min
Más allá de las listas virtuales: Cómo renderizar 100K elementos con 100s de actualizaciones/seg en React
Top Content
The Talk discusses optimizing rendering of big tables using Flipper, a new version that is ten times faster with improved user interaction and richer data. It explores optimizing rendering with React, virtualization, filtering, sorting, and windowing techniques. The introduction of the Flipper Datasource packet simplifies handling updates, inserts, and removals. The performance of the Flipper data source package is excellent, even in a debug build of React, with minimal CPU usage. The Q&A session covers incremental sorting, dynamic row height, and the potential for two-dimensional virtualization in the future.

Workshops on related topic

Masterclass de Depuración de Rendimiento de React
React Summit 2023React Summit 2023
170 min
Masterclass de Depuración de Rendimiento de React
Top Content
Featured WorkshopFree
Ivan Akulov
Ivan Akulov
Los primeros intentos de Ivan en la depuración de rendimiento fueron caóticos. Vería una interacción lenta, intentaría una optimización aleatoria, vería que no ayudaba, y seguiría intentando otras optimizaciones hasta que encontraba la correcta (o se rendía).
En aquel entonces, Ivan no sabía cómo usar bien las herramientas de rendimiento. Haría una grabación en Chrome DevTools o React Profiler, la examinaría, intentaría hacer clic en cosas aleatorias, y luego la cerraría frustrado unos minutos después. Ahora, Ivan sabe exactamente dónde y qué buscar. Y en esta masterclass, Ivan te enseñará eso también.
Así es como va a funcionar. Tomaremos una aplicación lenta → la depuraremos (usando herramientas como Chrome DevTools, React Profiler, y why-did-you-render) → identificaremos el cuello de botella → y luego repetiremos, varias veces más. No hablaremos de las soluciones (en el 90% de los casos, es simplemente el viejo y regular useMemo() o memo()). Pero hablaremos de todo lo que viene antes - y aprenderemos a analizar cualquier problema de rendimiento de React, paso a paso.
(Nota: Esta masterclass es más adecuada para ingenieros que ya están familiarizados con cómo funcionan useMemo() y memo() - pero quieren mejorar en el uso de las herramientas de rendimiento alrededor de React. Además, estaremos cubriendo el rendimiento de la interacción, no la velocidad de carga, por lo que no escucharás una palabra sobre Lighthouse 🤐)
React, TypeScript y TDD
React Advanced 2021React Advanced 2021
174 min
React, TypeScript y TDD
Top Content
Featured WorkshopFree
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

¿Los dos juntos? No tanto. Dado que ambos cambian rápidamente, es difícil encontrar materiales de aprendizaje precisos.

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.
Dominando conceptos avanzados en TypeScript
React Summit US 2023React Summit US 2023
132 min
Dominando conceptos avanzados en TypeScript
Top Content
Featured WorkshopFree
Jiri Lojda
Jiri Lojda
TypeScript no es solo tipos e interfaces. Únete a esta masterclass para dominar características más avanzadas de TypeScript que harán tu código a prueba de balas. Cubriremos tipos condicionales y notación de inferencia, cadenas de plantillas y cómo mapear sobre tipos de unión y propiedades de objetos/arrays. Cada tema se demostrará en una aplicación de muestra que se escribió con tipos básicos o sin tipos en absoluto y juntos mejoraremos el código para que te familiarices más con cada característica y puedas llevar este nuevo conocimiento directamente a tus proyectos.
Aprenderás:- - ¿Qué son los tipos condicionales y la notación de inferencia?- ¿Qué son las cadenas de plantillas?- Cómo mapear sobre tipos de unión y propiedades de objetos/arrays.
Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web
React Summit 2024React Summit 2024
92 min
Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web
Featured Workshop
Vivek Nayyar
Vivek Nayyar
Sumérgete en el mundo de la IA con nuestro masterclass interactivo diseñado específicamente para desarrolladores web. "Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web" ofrece una oportunidad única para cerrar la brecha entre la IA y el desarrollo web. A pesar de la prominencia de Python en el desarrollo de IA, el vasto potencial de JavaScript sigue siendo en gran medida inexplorado. Este masterclass tiene como objetivo cambiar eso.A lo largo de esta sesión práctica, los participantes aprenderán cómo aprovechar LangChain, una herramienta diseñada para hacer que los modelos de lenguaje grandes sean más accesibles y útiles, para construir agentes de IA dinámicos directamente dentro de entornos JavaScript. Este enfoque abre nuevas posibilidades para mejorar las aplicaciones web con funciones inteligentes, desde el soporte al cliente automatizado hasta la generación de contenido y más.Comenzaremos con los conceptos básicos de LangChain y los modelos de IA, asegurando una base sólida incluso para aquellos nuevos en IA. A partir de ahí, nos sumergiremos en ejercicios prácticos que demuestran cómo integrar estas tecnologías en proyectos reales de JavaScript. Los participantes trabajarán en ejemplos, enfrentando y superando los desafíos de hacer que la IA funcione sin problemas en la web.Este masterclass es más que una experiencia de aprendizaje; es una oportunidad de estar a la vanguardia de un campo emergente. Al final, los asistentes no solo habrán adquirido habilidades valiosas, sino que también habrán creado funciones mejoradas con IA que podrán llevar a sus proyectos o lugares de trabajo.Ya seas un desarrollador web experimentado curioso acerca de la IA o estés buscando expandir tus habilidades en áreas nuevas y emocionantes, "Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web" es tu puerta de entrada al futuro del desarrollo web. Únete a nosotros para desbloquear el potencial de la IA en tus proyectos web, haciéndolos más inteligentes, interactivos y atractivos para los usuarios.
De Todo App a B2B SaaS con Next.js y Clerk
React Summit US 2023React Summit US 2023
153 min
De Todo App a B2B SaaS con Next.js y Clerk
Top Content
WorkshopFree
Dev Agrawal
Dev Agrawal
Si eres como yo, probablemente tengas un millón de ideas para proyectos secundarios, algunas de las cuales incluso podrían hacerte ganar dinero como un micro SaaS, o podrían resultar ser la próxima startup de mil millones de dólares. Pero, ¿cómo sabes cuáles? ¿Cómo pasas de una idea a un producto funcional que puede ser puesto en manos de clientes que pagan sin renunciar a tu trabajo e invirtiendo todo tu tiempo y dinero en ello? ¿Cómo pueden competir tus proyectos secundarios en solitario con las aplicaciones construidas por enormes equipos y grandes empresas?
Construir productos SaaS ricos viene con desafíos técnicos como infraestructura, escalabilidad, disponibilidad, seguridad y subsistemas complicados como autenticación y pagos. Por eso, a menudo son los gigantes tecnológicos ya establecidos quienes pueden construir y operar productos de este tipo de manera razonable. Sin embargo, una nueva generación de devtools está permitiendo a los desarrolladores construir fácilmente soluciones completas que aprovechan la mejor infraestructura en la nube disponible, y ofrecen una experiencia que te permite iterar rápidamente en tus ideas por un bajo costo de $0. Se llevan todos los desafíos técnicos de construir y operar productos de software para que solo tengas que pasar tu tiempo construyendo las características que tus usuarios quieren, dándote una oportunidad razonable de competir contra el mercado al mantenerte increíblemente ágil y receptivo a las necesidades de los usuarios.
En esta masterclass de 3 horas comenzarás con una simple aplicación de gestión de tareas construida con React y Next.js y la convertirás en un producto SaaS completamente funcional y escalable integrando una base de datos escalable (PlanetScale), autenticación multi-tenant (Clerk), y pagos basados en suscripción (Stripe). También aprenderás cómo los principios del desarrollo de software ágil y el diseño impulsado por el dominio pueden ayudarte a construir productos rápidamente y de manera rentable, y competir con las soluciones existentes.
Depuración del Rendimiento de React
React Advanced 2023React Advanced 2023
148 min
Depuración del Rendimiento de React
Workshop
Ivan Akulov
Ivan Akulov
Los primeros intentos de Ivan en la depuración de rendimiento fueron caóticos. Veía una interacción lenta, probaba una optimización aleatoria, veía que no ayudaba, y seguía probando otras optimizaciones hasta que encontraba la correcta (o se rendía).
En aquel entonces, Ivan no sabía cómo usar bien las herramientas de rendimiento. Hacía una grabación en Chrome DevTools o React Profiler, la examinaba, intentaba hacer clic en cosas al azar, y luego la cerraba frustrado unos minutos después. Ahora, Ivan sabe exactamente dónde y qué buscar. Y en esta masterclass, Ivan te enseñará eso también.
Así es como va a funcionar. Tomaremos una aplicación lenta → la depuraremos (usando herramientas como Chrome DevTools, React Profiler, y why-did-you-render) → identificaremos el cuello de botella → y luego repetiremos, varias veces más. No hablaremos de las soluciones (en el 90% de los casos, es simplemente el viejo y regular useMemo() o memo()). Pero hablaremos de todo lo que viene antes - y aprenderemos cómo analizar cualquier problema de rendimiento de React, paso a paso.
(Nota: Esta masterclass es más adecuada para ingenieros que ya están familiarizados con cómo funcionan useMemo() y memo() - pero quieren mejorar en el uso de las herramientas de rendimiento alrededor de React. Además, cubriremos el rendimiento de interacción, no la velocidad de carga, por lo que no escucharás una palabra sobre Lighthouse 🤐)