Mejora la velocidad y eficiencia de tu sitio web con Partytown

Rate this content
Bookmark

¡Desata todo el potencial de tu sitio web con Partytown! Di adiós a las páginas lentas y a las bajas puntuaciones de Lighthouse causadas por scripts de terceros pesados. Con Partytown, tu hilo principal se dedica únicamente a tu código, liberándolo para que se ejecute de manera más suave, rápida y eficiente que nunca. Potencia tu sitio web con un rendimiento ultrarrápido moviendo todos los scripts no críticos a un web worker, donde se ejecutarán sin problemas en segundo plano. Prepárate para alcanzar el siguiente nivel de rendimiento web con Partytown.

This talk has been presented at React Summit 2023, check out the latest edition of this React Conference.

FAQ

PartyTown es una herramienta que permite ejecutar scripts de terceros en un web worker, liberando así el hilo principal de la interfaz de usuario para que maneje el código del usuario. Esto minimiza las posibilidades de que los scripts de terceros bloqueen el hilo principal y mejoren el rendimiento general de la interfaz de usuario.

JavaScript puede ralentizar un sitio web debido a scripts pesados y sobrecargados, interactividad cronometrada, carga de red aumentada y manipulación excesiva del DOM. Estos elementos pueden bloquear el hilo principal, deteriorando la experiencia del usuario.

PartyTown mejora significativamente el rendimiento al ejecutar scripts de terceros desde un web worker, lo que resulta en una mejor puntuación de rendimiento en herramientas como Lighthouse. Por ejemplo, una página que normalmente tendría una puntuación baja debido a scripts pesados, puede alcanzar una puntuación perfecta cuando estos se manejan a través de PartyTown.

En PartyTown, los scripts de terceros se ejecutan dentro de web workers mediante el cambio del atributo 'type' del elemento script a un valor no reconocido por el navegador, como 'text/partytown', lo que permite que estos scripts se ejecuten de manera aislada del hilo principal.

Una limitación de PartyTown es que no puede modificar el código de los scripts de terceros y debe gestionar la comunicación asincrónica entre el web worker y el hilo principal. Esto puede complicar la integración y el rendimiento de operaciones que dependen de acceso síncrono al DOM.

Para el análisis de rendimiento en producción, se recomienda usar herramientas que incorporan métricas de usuarios reales, como PageSpeed Insights, webpagetest.org y speedcurve.com, ofreciendo una perspectiva más precisa de la experiencia real del usuario.

Los scripts de terceros compiten por recursos con el código propio del sitio en el hilo principal, lo que puede llevar a una degradación del rendimiento al interferir con la ejecución fluida del código propio y causar fragmentación del diseño.

Para integrar PartyTown, simplemente cambia el atributo 'type' de los scripts que desees ejecutar en un web worker a 'text/partytown'. Esto no requiere cargadores o preprocesadores y es compatible con cualquier tecnología web, facilitando su adopción en diversos proyectos.

PartyTown mejora la experiencia del usuario al reducir el tiempo de bloqueo del hilo principal, permite una mayor personalización sobre qué scripts ejecutar en el hilo de fondo y mejora las tasas de conversión del sitio al acelerar los tiempos de carga de la página.

Adam Bradley
Adam Bradley
20 min
06 Jun, 2023

Comments

Sign in or register to post your comment.
Video Summary and Transcription
La charla de hoy trata sobre cómo mejorar la velocidad y eficiencia del sitio utilizando PartyTown, una herramienta que ejecuta scripts de terceros desde un web worker, minimizando su impacto en el hilo principal de la interfaz de usuario. La inclusión de scripts de terceros en las páginas web debe considerarse cuidadosamente debido a su posible impacto en el rendimiento. Las pruebas en el mundo real son cruciales para identificar problemas de rendimiento que pueden no aparecer durante el desarrollo. PartyTown ofrece funciones como la capacidad de incluir scripts en una lista blanca y es compatible con varios frameworks para una integración sencilla. Fue desarrollado por el equipo de builder.io para garantizar que los sitios web puedan escalar sin sacrificar el rendimiento.

1. Introducción a la velocidad y eficiencia del sitio

Short description:

Hoy discutiremos cómo mejorar la velocidad y eficiencia del sitio utilizando PartyTown. JavaScript es un gran contribuyente a las páginas web lentas, causando problemas como mayor interactividad, carga de red, manipulación del DOM y bloqueo de hilos. Los sitios web más rápidos conducen a tasas de conversión más altas, respaldadas por estudios de casos. Si bien hay muchos consejos sobre cómo optimizar el código, los scripts de terceros suelen ser los principales culpables de los problemas de rendimiento. Estos scripts, como Google Analytics y Optimizely, pueden agregar solicitudes HTTP, bloquear la representación de la página y consumir recursos. Las organizaciones deben equilibrar los beneficios de los scripts de terceros con sus consecuencias en el rendimiento.

♪♪ Hoy estoy muy emocionado de hablar sobre cómo mejorar la velocidad y eficiencia de tu sitio utilizando PartyTown. Mi nombre es Adam Bradley. Soy director de tecnología de código abierto en Build.io. Otros proyectos de código abierto en los que he participado incluyen Ionic y Stencil. Y me divierto mucho trabajando en otro proyecto de código abierto de Builder llamado Quick.

Así que primero sumerjámonos en cuál es el problema. La respuesta corta es, bueno, es JavaScript. JavaScript es uno de los mayores contribuyentes a las páginas web lentas. A menudo se puede generalizar que cuanto más JavaScript se agrega a una página, más lenta es para el usuario. Ahora, la razón por la que JavaScript puede ralentizar una página varía por muchas razones diferentes. Pero algunos de los problemas más comunes provienen de los scripts pesados y sobrecargados que incluyen la interactividad cronometrada aumentada, la carga de red aumentada, la manipulación excesiva del DOM que los archivos JavaScript pueden hacer, y también cómo JavaScript puede bloquear el hilo principal.

La investigación muestra que cuanto más rápido es el sitio web, más altas son las tasas de conversión, independientemente de cuál sea la métrica de conversión. Y hay muchos estudios de casos bien documentados que proporcionan evidencia para respaldar esta afirmación. Y esta es solo una pequeña muestra de estudios de casos que profundizan en por qué importa el rendimiento. Pero profundicemos un poco más en lo que podemos hacer para mejorar el rendimiento y, en última instancia, mejorar las tasas de conversión de tu sitio. Ahora la web está llena de todo tipo de consejos sobre cómo mejorar el rendimiento de JavaScript, lo que puede ser un poco abrumador. Las numerosas optimizaciones ponen presión en los desarrolladores, y se centra a menudo en cómo mejorar tu código. Sin embargo, incluso con un código óptimo, aún hay problemas de rendimiento que abordar. Así que como puedes ver aquí, esta es solo una pequeña lista de cosas que a menudo aparecen en los resultados de búsqueda, como esto es lo que debes hacer con tu código. Así que recuerda esa parte.

Sin embargo, el mayor culpable del rendimiento del sitio web a menudo proviene de los scripts de terceros. Los scripts de primera parte son tu código, el código sobre el que tienes control y puedes mejorar. Sin embargo, los scripts de terceros se refieren a código externo que un sitio web carga desde un dominio y servidor diferente, sobre los cuales el propietario del sitio web no tiene control, o acceso directo para mejorar. Es código que se ejecuta en tu sitio, en la misma ventana y documento, pero no tienes control sobre él. Un ejemplo común de scripts de terceros incluye Google Analytics, Google Tag Manager, Optimizely, Hotjar y muchos otros. Si bien los scripts de terceros se utilizan a menudo para proporcionar funcionalidad valiosa y recopilación de datos, también tienen muchos problemas. Pueden agregar solicitudes HTTP adicionales que pueden llevar a tiempos de carga de página más largos, o bloquear la representación de la página principal, lo que puede resultar en una mala experiencia de usuario. Los scripts de terceros también pueden ser intensivos en recursos, utilizando valiosos recursos de CPU y memoria, lo que también puede llevar a tiempos de carga de página más lentos, especialmente en dispositivos móviles. A pesar de todos estos problemas, las organizaciones a menudo tienen razones válidas para incluir scripts de terceros, ya que los datos que proporcionan ayudan a tomar decisiones comerciales en toda la organización. Sin embargo, es importante sopesar los beneficios frente a las posibles consecuencias de rendimiento al cargar demasiados scripts de terceros.

2. Impacto de los Scripts de Terceros

Short description:

Es importante considerar cuidadosamente la inclusión de scripts de terceros en tu página web. Estudios recientes muestran un aumento en el número de scripts de terceros cargados en dispositivos móviles. Cuantos más scripts de primera parte tenga un sitio web, es más probable que agreguen scripts de terceros para funcionalidad adicional y recopilación de datos. Los desarrolladores deben considerar el impacto de los scripts de terceros en el rendimiento y evaluar su uso.

Por lo tanto, es importante considerar cuidadosamente cuáles debes y no debes incluir en tu página web. Ahora, estudios recientes han demostrado que el número de scripts de terceros cargados en un dispositivo móvil está aumentando. Según el HTTP Archive, un dispositivo móvil solicita 10 scripts de terceros y 9 scripts de primera parte, lo cual es un aumento significativo con respecto a años anteriores, y la tendencia solo se espera que continúe. Y cuando llegamos al percentil 90, las páginas móviles solicitan 34 scripts de terceros y 33 scripts de primera parte. Por lo tanto, cuantos más scripts de primera parte tenga un sitio web, es más probable que agreguen scripts de terceros para proporcionar funcionalidad adicional y recopilar más data. Por lo tanto, es importante que los desarrolladores consideren el impacto de los scripts de terceros en el rendimiento de una página webperformance y evalúen cuidadosamente su uso.

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

Una Guía del Comportamiento de Renderizado de React
React Advanced 2022React Advanced 2022
25 min
Una Guía del Comportamiento de Renderizado de React
Top Content
This transcription provides a brief guide to React rendering behavior. It explains the process of rendering, comparing new and old elements, and the importance of pure rendering without side effects. It also covers topics such as batching and double rendering, optimizing rendering and using context and Redux in React. Overall, it offers valuable insights for developers looking to understand and optimize React rendering.
No resuelvas problemas, elimínalos
React Advanced 2021React Advanced 2021
39 min
No resuelvas problemas, elimínalos
Top Content
Kent C. Dodds discusses the concept of problem elimination rather than just problem-solving. He introduces the idea of a problem tree and the importance of avoiding creating solutions prematurely. Kent uses examples like Tesla's electric engine and Remix framework to illustrate the benefits of problem elimination. He emphasizes the value of trade-offs and taking the easier path, as well as the need to constantly re-evaluate and change approaches to eliminate problems.
Uso efectivo de useEffect
React Advanced 2022React Advanced 2022
30 min
Uso efectivo de useEffect
Top Content
Today's Talk explores the use of the useEffect hook in React development, covering topics such as fetching data, handling race conditions and cleanup, and optimizing performance. It also discusses the correct use of useEffect in React 18, the distinction between Activity Effects and Action Effects, and the potential misuse of useEffect. The Talk highlights the benefits of using useQuery or SWR for data fetching, the problems with using useEffect for initializing global singletons, and the use of state machines for handling effects. The speaker also recommends exploring the beta React docs and using tools like the stately.ai editor for visualizing state machines.
Acelerando tu aplicación React con menos JavaScript
React Summit 2023React Summit 2023
32 min
Acelerando tu aplicación React con menos JavaScript
Top Content
Mishko, the creator of Angular and AngularJS, discusses the challenges of website performance and JavaScript hydration. He explains the differences between client-side and server-side rendering and introduces Quik as a solution for efficient component hydration. Mishko demonstrates examples of state management and intercommunication using Quik. He highlights the performance benefits of using Quik with React and emphasizes the importance of reducing JavaScript size for better performance. Finally, he mentions the use of QUIC in both MPA and SPA applications for improved startup performance.
Sistemas de Diseño: Caminando la Línea Entre Flexibilidad y Consistencia
React Advanced 2021React Advanced 2021
47 min
Sistemas de Diseño: Caminando la Línea Entre Flexibilidad y Consistencia
Top Content
The Talk discusses the balance between flexibility and consistency in design systems. It explores the API design of the ActionList component and the customization options it offers. The use of component-based APIs and composability is emphasized for flexibility and customization. The Talk also touches on the ActionMenu component and the concept of building for people. The Q&A session covers topics such as component inclusion in design systems, API complexity, and the decision between creating a custom design system or using a component library.
Concurrencia en React, Explicada
React Summit 2023React Summit 2023
23 min
Concurrencia en React, Explicada
Top Content
React 18's concurrent rendering, specifically the useTransition hook, optimizes app performance by allowing non-urgent updates to be processed without freezing the UI. However, there are drawbacks such as longer processing time for non-urgent updates and increased CPU usage. The useTransition hook works similarly to throttling or bouncing, making it useful for addressing performance issues caused by multiple small components. Libraries like React Query may require the use of alternative APIs to handle urgent and non-urgent updates effectively.

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 🤐)
Consejos sobre React Hooks que solo los profesionales conocen
React Summit Remote Edition 2021React Summit Remote Edition 2021
177 min
Consejos sobre React Hooks que solo los profesionales conocen
Top Content
Featured Workshop
Maurice de Beijer
Maurice de Beijer
La adición de la API de hooks a React fue un cambio bastante importante. Antes de los hooks, la mayoría de los componentos tenían que ser basados en clases. Ahora, con los hooks, estos son a menudo componentes funcionales mucho más simples. Los hooks pueden ser realmente simples de usar. Casi engañosamente simples. Porque todavía hay muchas formas en las que puedes equivocarte con los hooks. Y a menudo resulta que hay muchas formas en las que puedes mejorar tus componentes con una mejor comprensión de cómo se puede usar cada hook de React.Aprenderás todo sobre los pros y los contras de los diversos hooks. Aprenderás cuándo usar useState() versus useReducer(). Veremos cómo usar useContext() de manera eficiente. Verás cuándo usar useLayoutEffect() y cuándo useEffect() es mejor.
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.
Diseñando Pruebas Efectivas con la Biblioteca de Pruebas de React
React Summit 2023React Summit 2023
151 min
Diseñando Pruebas Efectivas con la Biblioteca de Pruebas de React
Top Content
Featured Workshop
Josh Justice
Josh Justice
La Biblioteca de Pruebas de React es un gran marco para las pruebas de componentes de React porque responde muchas preguntas por ti, por lo que no necesitas preocuparte por esas preguntas. Pero eso no significa que las pruebas sean fáciles. Todavía hay muchas preguntas que tienes que resolver por ti mismo: ¿Cuántas pruebas de componentes debes escribir vs pruebas de extremo a extremo o pruebas de unidad de nivel inferior? ¿Cómo puedes probar una cierta línea de código que es difícil de probar? ¿Y qué se supone que debes hacer con esa persistente advertencia de act()?
En esta masterclass de tres horas, presentaremos la Biblioteca de Pruebas de React junto con un modelo mental de cómo pensar en el diseño de tus pruebas de componentes. Este modelo mental te ayudará a ver cómo probar cada bit de lógica, si debes o no simular dependencias, y ayudará a mejorar el diseño de tus componentes. Te irás con las herramientas, técnicas y principios que necesitas para implementar pruebas de componentes de bajo costo y alto valor.
Tabla de contenidos- Los diferentes tipos de pruebas de aplicaciones de React, y dónde encajan las pruebas de componentes- Un modelo mental para pensar en las entradas y salidas de los componentes que pruebas- Opciones para seleccionar elementos DOM para verificar e interactuar con ellos- El valor de los mocks y por qué no deben evitarse- Los desafíos con la asincronía en las pruebas de RTL y cómo manejarlos
Requisitos previos- Familiaridad con la construcción de aplicaciones con React- Experiencia básica escribiendo pruebas automatizadas con Jest u otro marco de pruebas unitarias- No necesitas ninguna experiencia con la Biblioteca de Pruebas de React- Configuración de la máquina: Node LTS, Yarn
Domina los Patrones de JavaScript
JSNation 2024JSNation 2024
145 min
Domina los Patrones de JavaScript
Top Content
Featured Workshop
Adrian Hajdin
Adrian Hajdin
Durante esta masterclass, los participantes revisarán los patrones esenciales de JavaScript que todo desarrollador debería conocer. A través de ejercicios prácticos, ejemplos del mundo real y discusiones interactivas, los asistentes profundizarán su comprensión de las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables. Al final de la masterclass, los participantes ganarán una nueva confianza en su capacidad para escribir código JavaScript de alta calidad que resista el paso del tiempo.
Puntos Cubiertos:
1. Introducción a los Patrones de JavaScript2. Patrones Fundamentales3. Patrones de Creación de Objetos4. Patrones de Comportamiento5. Patrones Arquitectónicos6. Ejercicios Prácticos y Estudios de Caso
Cómo Ayudará a los Desarrolladores:
- Obtener una comprensión profunda de los patrones de JavaScript y sus aplicaciones en escenarios del mundo real- Aprender las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables- Mejorar las habilidades de resolución de problemas y la legibilidad del código- Mejorar la colaboración y la comunicación dentro de los equipos de desarrollo- Acelerar el crecimiento de la carrera y las oportunidades de avance en la industria del software
Construyendo aplicaciones web que iluminan Internet con QwikCity
JSNation 2023JSNation 2023
170 min
Construyendo aplicaciones web que iluminan Internet con QwikCity
Featured WorkshopFree
Miško Hevery
Miško Hevery
Construir aplicaciones web instantáneas a gran escala ha sido elusivo. Los sitios del mundo real necesitan seguimiento, análisis y interfaces y interacciones de usuario complejas. Siempre comenzamos con las mejores intenciones pero terminamos con un sitio menos que ideal.
QwikCity es un nuevo meta-framework que te permite construir aplicaciones a gran escala con un rendimiento de inicio constante. Veremos cómo construir una aplicación QwikCity y qué la hace única. El masterclass te mostrará cómo configurar un proyecto QwikCity. Cómo funciona el enrutamiento con el diseño. La aplicación de demostración obtendrá datos y los presentará al usuario en un formulario editable. Y finalmente, cómo se puede utilizar la autenticación. Todas las partes básicas para cualquier aplicación a gran escala.
En el camino, también veremos qué hace que Qwik sea único y cómo la capacidad de reanudación permite un rendimiento de inicio constante sin importar la complejidad de la aplicación.