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í hay algunos consejos para utilizar mejor DevTools, incluyendo el uso del comando run, la personalización de atajos de teclado y la emulación del efecto de enfoque. Aprende a inspeccionar la memoria, usar el panel de red para tener más control sobre las solicitudes de red y aprovechar las utilidades de la consola. Guarda el código que usas con frecuencia como snippets y usa las anulaciones locales para una edición fácil. Optimiza 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 reducido de los datos.
Available in English: Debugging with Chrome DevTools

1. Consejos para Mejor Utilizar DevTools

Short description:

Soy Jasleen Yin, la defensora de desarrolladores para Chrome DevTools en Google. Aquí hay algunos consejos para utilizar mejor DevTools para 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 menús desplegables. Mantente atento para la próxima función.

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

Permítanme compartir con ustedes algunos consejos que podrían ayudarles a utilizar mejor DevTools para 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 la página, puedo ejecutar el comando con el atajo de teclado command shift P y escribir capture. Aquí puedes ver una lista de opciones de captura de pantalla. Desplázate por la lista. Te sorprenderá que hay muchos comandos que puedes ejecutar. El comando run ayuda a ahorrar memoria cerebral 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 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 de command shift P o agregar otro atajo, digamos opción C al mismo comando. Si estás usando Visual Studio Code como editor de código, puedes mapear los atajos a eso también.

A continuación, hay momentos en los que quiero depurar mi menú desplegable de búsqueda. Sin embargo, cuando hago clic derecho para inspeccionar en el cuadro de búsqueda, el menú desplegable desaparece. Esto es molesto. Quiero decir, solo quiero depurar el menú desplegable. Por favor, ayúdame. Bien, cálmate. Saquemos el comando run y escribamos focus. Selecciona la opción de emular una página de enfoque. Problema resuelto. La razón es que el menú desplegable se activa cuando el usuario se enfoca en la entrada. Así que usa DevTools para emular el efecto de enfoque y estarás 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, usa el inspector de memoria para inspeccionar buffers de array y memoria WASM. En el panel de red, encuentra iniciadores y dependencias de solicitudes de red, cambia el agente de usuario y usa filtros para más control. En la consola, usa expresiones en vivo para rastrear valores en tiempo real y aprovecha las utilidades de consola.

Para aquellos que lidian mucho con la memoria, ahora puedes usar el inspector de memoria para inspeccionar el buffer de array de JavaScript y la memoria WASM. Por ejemplo, tengo un buffer de array aquí. Vamos a establecer un punto de interrupción y refrescar la página. Nota el nuevo ícono junto al valor del buffer. Haz clic en él para revelar el inspector de memoria. Luego puedes navegar y reanudar las ejecuciones de scripts para inspeccionar los cambios de memoria en tiempo real. Aprende más sobre el inspector de memoria con esta documentación.

A continuación, veamos el panel de red. Hay momentos en que queremos averiguar los iniciadores o dependencias de una solicitud de red en particular. Mantén presionada la tecla shift y pasa el ratón sobre la solicitud en la tabla de solicitudes. DevTools colorea los iniciadores en verde y las dependencias en rojo. A continuación, puedes cambiar el agente de usuario en la pestaña de condiciones de red. Por ejemplo, te gustaría asegurarte de que tu página funcione para la optimización de motores de búsqueda porque algunas configuraciones de servidores o CDN podrían bloquear rastreadores por defecto. Puedes depurar tal comportamiento haciendo clic en el ícono de condiciones de red, elige Google Bot del menú desplegable, y refresca la página para ver si ocurren 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 solicitudes que son mayores de 15 KB. ¿Qué pasa si quiero encontrar todas las solicitudes menores de 15 KB? Puedo usar el signo negativo para negar este resultado de filtro. Por ejemplo, puedes excluir todas las solicitudes con estado 200 con el filtro negativo código de estado 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 usar 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 en casi tiempo real. Me gustaría hacer un seguimiento de las imágenes punteadas en esta página. Haz clic en el ícono de crear expresiones en vivo y escribe document.querySelectorOrImg.length. Haz clic derecho y duplica el elemento de imagen ahora. ¿Ves? El número se actualiza automáticamente. ¿Genial, verdad? También hay algunas utilidades de consola útiles que pueden ahorrar tiempo de escritura. Ahora mismo, usamos document.

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.
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.
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.
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.
Tracing: Frontend Issues With Backend Solutions
React Summit US 2024React Summit US 2024
112 min
Tracing: Frontend Issues With Backend Solutions
Featured WorkshopFree
Lazar Nikolov
Sarah Guthals
2 authors
Los problemas de frontend que afectan a tus usuarios a menudo son provocados por problemas de backend. En esta masterclass, aprenderás cómo identificar problemas que causan páginas web lentas y malos Core Web Vitals usando tracing.
Luego, pruébalo tú mismo configurando Sentry en un proyecto Next.js ya preparado para descubrir problemas de rendimiento, incluyendo consultas lentas a la base de datos en una sesión interactiva de programación en pareja.
Saldrás de la masterclass siendo capaz de:- Encontrar problemas de backend que podrían estar ralentizando tus aplicaciones de frontend- Configurar tracing con Sentry en un proyecto Next.js- Depurar y solucionar problemas de rendimiento deficiente usando tracing
Este será un evento en vivo de 2 horas donde tendrás la oportunidad de codificar junto con nosotros y hacernos preguntas.
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.