Estrategias de Prefetch para Mejorar el Rendimiento de tu Aplicación Vue.JS

Rate this content
Bookmark

Esta charla cubrirá los beneficios de utilizar el prefetching para mejorar el rendimiento de las aplicaciones Vue.js. Los asistentes aprenderán sobre diferentes estrategias de prefetching y las mejores prácticas para optimizar el prefetching en diferentes condiciones de red.

FAQ

Aleksandr Gekuv es un estudiante de TIC e ingeniería de software con aproximadamente tres años de experiencia profesional. Ha trabajado como desarrollador de software en Axion Biosystems y actualmente está estudiando y trabajando en Eindhoven.

El rendimiento es crucial porque los sitios web rápidos mejoran la experiencia del usuario, reducen la tasa de rebote y pueden aumentar el tráfico de SEO y las tasas de conversión. Un rendimiento deficiente puede llevar a que los usuarios abandonen el sitio, afectando negativamente al negocio y al SEO.

En la charla se mencionaron varias técnicas como la compresión de imágenes, minimización del JS, agrupación de recursos, división de código, carga diferida y anticipación de acciones del usuario.

DNS prefetch es una técnica que permite al navegador realizar la búsqueda DNS lo antes posible. Esto reduce el tiempo que toma para que el navegador resuelva la dirección IP de los sitios que el usuario podría visitar, acelerando el proceso de carga.

El prerenderizado permite al navegador renderizar una página completa en segundo plano, lo que puede hacer que la carga de la página sea instantánea cuando el usuario navega a ella. Sin embargo, debe usarse con cuidado, ya que puede consumir mucho ancho de banda si no se gestiona adecuadamente.

Unhead es una biblioteca creada por Harlan Wilton que permite usar un hook componible llamado useHead en Vue.js para gestionar elementos como enlaces y etiquetas meta en el head de un documento HTML, facilitando la implementación de técnicas de optimización de rendimiento como prefetching.

El prefetching predictivo es una técnica avanzada que utiliza datos de Google Analytics para predecir y cargar anticipadamente los recursos que es más probable que el usuario necesite. Se basa en la creación de una cadena de Markov para modelar la probabilidad de navegación del usuario.

Aleksandar Gekov
Aleksandar Gekov
21 min
15 May, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Bienvenidos a mi charla sobre estrategias de prefetching y mejora del rendimiento de aplicaciones en Vue.js. Una parte crucial del rendimiento web es la optimización para la red. El almacenamiento en caché y las pistas de recursos, como el prefetching DNS, preconnect, preload y module preload, pueden mejorar el rendimiento del sitio web. El prefetching de fuentes no críticas y el uso de diferentes estrategias pueden mejorar la experiencia del usuario. Las bibliotecas como unhead y get.js ofrecen personalización y prefetching predictivo basado en datos de Google Analytics.

1. Introducción a la charla de Vue.js

Short description:

Bienvenidos a mi charla de Vue.js sobre estrategias de precarga y mejora del rendimiento de la aplicación. Soy Aleksandr Gekuv, estudiante de TIC e ingeniería de software, y desarrollador de software en Axion Biosystems. El rendimiento es importante porque los sitios web lentos frustran a los usuarios, lo que lleva a abandonos y a una menor clasificación. Estudios muestran que un aumento del 32% en la tasa de rebote ocurre cuando el tiempo de carga de la página pasa de 1 a 3 segundos. Pinterest experimentó una disminución del 40% en el tiempo de espera y un aumento del 15% en el tráfico y la tasa de conversión de SEO al optimizar el rendimiento. El rendimiento web consiste en hacer que los sitios web sean rápidos y receptivos, encantando y deleitando a los usuarios.

Bienvenidos, todos, a mi charla de Vue.js. Mi charla se llama estrategias de precarga y cómo mejorar el rendimiento de tu aplicación Vue.js.

Así que, un poco más de información sobre mí. Mi nombre es Aleksandr Gekuv. Soy estudiante de TIC e ingeniería de software. También he trabajado como desarrollador de software en Axion Biosystems. Tengo aproximadamente tres años de experiencia profesional. Originalmente soy de Sofía, Bulgaria, pero actualmente estoy estudiando y trabajando en Eindhoven. Recientemente, también he comenzado a crear contenido sobre Vue. Así que pueden visitar mi blog y mis videos de YouTube. También estoy tratando de ser más activo en Twitter. Así que pueden saludarme allí también.

Hoy estaremos hablando sobre rendimiento. ¿Por qué es importante el rendimiento? El rendimiento web y la red. ¿Cómo funciona el navegador, técnicas de optimización, algunos ejemplos en Vue. Mencionaré brevemente una biblioteca llamada guestjs, y luego algunas reflexiones finales. Y comencemos con por qué es importante el rendimiento.

A las personas les encantan los sitios web rápidos. En el mundo acelerado de hoy, donde las personas tienen cada vez menos atención, es realmente importante que nosotros, como desarrolladores, hagamos nuestros sitios web rápidos. Uno de los inconvenientes es que los sitios web lentos frustran a los usuarios, y eso puede llevar a que los usuarios abandonen estos sitios web. Y eso realmente puede perjudicar al negocio y también al SEO, porque cuando los motores de búsqueda ven que mucha gente abandona un sitio web, esos sitios web tienen una clasificación más baja en los resultados de búsqueda. Hay 5 necesidades fundamentales de los usuarios a las que debemos tener en cuenta. Los sitios web perfectos suelen ser funcionales, confiables, usables, placenteros y, por último pero no menos importante, eficientes.

Algunos estudios para mostrar por qué es importante. Una famosa investigación de Google demostró que la probabilidad de rebote aumenta un 32% a medida que el tiempo de carga de la página pasa de 1 segundo a 3 segundos. Por lo tanto, impacta directamente a los usuarios finales si ven el contenido rápido o no. Otra investigación es del equipo de Pinterest. Descubrieron que reconstruir las páginas de Pinterest para mejorar el rendimiento resultó en una disminución del 40% en el tiempo de espera, un aumento del 15% en el tráfico de SEO y un aumento del 15% en la tasa de conversión para registrarse. Todo esto es muy importante. Y si tenemos que dar una definición de rendimiento web, simplemente lo pondría como hacer que los sitios web sean rápidos y receptivos. Si necesitan una respuesta más poética a esa pregunta, le pregunté a Chat GPT y respondió que el rendimiento web es el arte de crear una obra maestra ultrarrápida donde los desarrolladores bailan con el código para crear una sinfonía de velocidad que encanta y deleita.

2. Optimización para la Red

Short description:

Una parte crucial del rendimiento web es la optimización para la red. Ya hacemos mucho para optimizar la red, pero también anticipamos las acciones del usuario. Los navegadores son de un solo hilo y necesitan esperar a que las tareas finalicen. El primer paso es solicitar al servidor DNS la dirección IP. El handshake TCP y la negociación TLS añaden más retrasos. Podemos optimizar esto con la multiplexación de HTTP 2.0, CDNs y el almacenamiento en caché.

Una parte crucial del rendimiento web es la optimización para la red porque esencialmente los sitios web son archivos y estos archivos necesitan llegar de alguna manera a través de la red hasta nosotros. Un aspecto crucial del rendimiento web es minimizar esta latencia y ancho de banda de la red porque juegan un papel importante cuando se habla de la experiencia del usuario y el rendimiento y la capacidad de respuesta del sitio web.

Ya hacemos mucho para optimizar la red. Por ejemplo, comprimimos nuestras imágenes, minimizamos nuestro JS, agrupamos todo junto. Realizamos la división de código y cargamos de forma diferida cuando es posible. Pero también hacemos algo más, y eso es anticiparnos. Podemos anticipar lo que el usuario puede hacer. Más adelante, les mostraré algunos consejos sobre cómo podemos mejorar el rendimiento mediante la anticipación. Pero antes de eso, necesitamos entender cómo funciona el navegador.

Los navegadores son de un solo hilo por naturaleza, al igual que JavaScript. Esto significa que cuando tienen tareas, las completan de forma secuencial. Necesitan esperar a que una tarea termine antes de comenzar la siguiente. Cuando abrimos el navegador y escribimos algo en la URL en la parte superior, lo primero que el navegador necesita hacer, porque no recuerda qué dominio se relaciona con qué dirección IP, es preguntar al servidor DNS por eso. El servidor DNS actúa básicamente como un mapa. Tiene datos sobre qué dominio se relaciona con qué dirección IP. Enviamos esas dos solicitudes y obtenemos una dirección IP a cambio. El servidor DNS también almacenará en caché eso, y para su uso posterior, también podremos utilizar la versión en caché de esa dirección IP para que sea más rápido. Pero por lo general, este proceso lleva entre 20 y 120 milisegundos, y puede ser aún más lento en redes móviles. Ese es el primer paso. El siguiente paso es tener el handshake TCP. Y si el sitio web está asegurado, también necesitamos tener la negociación TLS. El handshake TCP envía básicamente reconocimientos sincronizados entre el navegador y el sitio web. Básicamente, esto significa que tenemos muchas más solicitudes de ida y vuelta hasta que realmente podemos hacer algo. En total, realizamos 8 viajes y al menos 300 milisegundos antes de que estemos listos para hacer cualquier tipo de solicitud HTTP. La primera solicitud se realiza después de eso, y pueden imaginar lo que sucede cuando las personas tienen una conexión más lenta o están en el móvil. Hay varias formas en las que podemos optimizar esto. Una cosa nueva es la multiplexación de HTTP 2.0, que nos permite tener múltiples acciones y tareas ejecutadas al mismo tiempo. Otra cosa son las CDNs, redes de distribución de contenido, que básicamente ayudan a acercar los servidores al usuario final.

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 Conference 2022React Advanced Conference 2022
25 min
Una Guía del Comportamiento de Renderizado de React
Top Content
React es una biblioteca para "renderizar" UI a partir de componentes, pero muchos usuarios se encuentran confundidos acerca de cómo funciona realmente el renderizado de React. ¿Qué significan términos como "renderizado", "reconciliación", "Fibers", y "committing"? ¿Cuándo ocurren los renderizados? ¿Cómo afecta el Contexto al renderizado, y cómo las bibliotecas como Redux causan actualizaciones? En esta charla, aclararemos la confusión y proporcionaremos una base sólida para entender cuándo, por qué, y cómo React renderiza. Veremos: - Qué es realmente el "renderizado" - Cómo React encola los renderizados y el comportamiento de renderizado estándar - Cómo se utilizan las claves y los tipos de componentes en el renderizado - Técnicas para optimizar el rendimiento del renderizado - Cómo el uso del contexto afecta al comportamiento del renderizado - Cómo las bibliotecas externas se integran en el renderizado de React
Todo Más Allá de la Gestión de Estado en Tiendas con Pinia
Vue.js London Live 2021Vue.js London Live 2021
34 min
Todo Más Allá de la Gestión de Estado en Tiendas con Pinia
Top Content
Cuando pensamos en Vuex, Pinia, o tiendas en general, a menudo pensamos en la gestión de estado y los patrones Flux, pero no solo las tiendas no siempre siguen el patrón Flux, ¡hay mucho más en las tiendas que las hace valer la pena usar! Plugins, Devtools, renderizado en el lado del servidor, integraciones TypeScript... Vamos a sumergirnos en todo más allá de la gestión de estado con Pinia con ejemplos prácticos sobre plugins y Devtools para sacar el máximo provecho de tus tiendas.
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
¿Demasiado JavaScript te está agobiando? Los nuevos marcos que prometen no usar JavaScript parecen interesantes, pero tienes una aplicación React existente que mantener. ¿Qué tal si Qwik React es tu respuesta para un inicio de aplicaciones más rápido y una mejor experiencia de usuario? Qwik React te permite convertir fácilmente tu aplicación React en una colección de islas, que pueden ser renderizadas en el servidor y rehidratadas con retraso, e incluso en algunos casos, se puede omitir la rehidratación por completo. Y todo esto de manera incremental sin una reescritura.
Bienvenido a Nuxt 3
Vue.js London Live 2021Vue.js London Live 2021
29 min
Bienvenido a Nuxt 3
Top Content
Explica sobre la refactorización del código base de NuxtJS y los desafíos que enfrenta para implementar Vue 3, Vite y otros paquetes.
Un Año en Vue 3
Vue.js London Live 2021Vue.js London Live 2021
20 min
Un Año en Vue 3
Top Content
Vue 3 puede sonar aún nuevo para muchos usuarios, pero en realidad ya ha sido lanzado hace más de un año. ¿Cómo evolucionó Vue 3 durante este período? ¿Por qué tardó tanto en ponerse al día el ecosistema? ¿Qué aprendimos de este proceso? ¿Qué viene después? ¡Discutiremos estas preguntas en esta charla!
Utilizando Rust desde Vue con WebAssembly
Vue.js London Live 2021Vue.js London Live 2021
8 min
Utilizando Rust desde Vue con WebAssembly
Top Content
Rust es un nuevo lenguaje para escribir código de alto rendimiento, que puede ser compilado a WebAssembly, y ejecutado dentro del navegador. En esta charla se te guiará sobre cómo puedes integrar Rust, dentro de una aplicación Vue, de una manera que es sencilla y fácil. Con ejemplos de cómo interactuar con Rust desde JavaScript, y algunas de las trampas a tener en cuenta.

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 🤐)
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Vue.js London Live 2021Vue.js London Live 2021
169 min
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Top Content
Featured WorkshopFree
Mikhail Kuznetcov
Mikhail Kuznetcov
Vue3 fue lanzado a mediados de 2020. Además de muchas mejoras y optimizaciones, la principal característica que trae Vue3 es la API de Composición, una nueva forma de escribir y reutilizar código reactivo. Aprendamos más sobre cómo usar la API de Composición de manera eficiente.

Además de las características principales de Vue3, explicaremos ejemplos de cómo usar bibliotecas populares con Vue3.

Tabla de contenidos:
- Introducción a Vue3
- API de Composición
- Bibliotecas principales
- Ecosistema Vue3

Requisitos previos:
IDE de elección (Inellij o VSC) instalado
Nodejs + NPM
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.
Next.js 13: Estrategias de Obtención de Datos
React Day Berlin 2022React Day Berlin 2022
53 min
Next.js 13: Estrategias de Obtención de Datos
Top Content
WorkshopFree
Alice De Mauro
Alice De Mauro
- Introducción- Prerrequisitos para la masterclass- Estrategias de obtención: fundamentos- Estrategias de obtención – práctica: API de obtención, caché (estática VS dinámica), revalidar, suspense (obtención de datos en paralelo)- Prueba tu construcción y sírvela en Vercel- Futuro: Componentes de servidor VS Componentes de cliente- Huevo de pascua de la masterclass (no relacionado con el tema, destacando la accesibilidad)- Conclusión
Usando Nitro - Construyendo una Aplicación con el Último Motor de Renderizado de Nuxt
Vue.js London Live 2021Vue.js London Live 2021
117 min
Usando Nitro - Construyendo una Aplicación con el Último Motor de Renderizado de Nuxt
Top Content
Workshop
Daniel Roe
Daniel Roe
Construiremos un proyecto Nuxt juntos desde cero usando Nitro, el nuevo motor de renderizado de Nuxt, y Nuxt Bridge. Exploraremos algunas de las formas en que puedes usar y desplegar Nitro, mientras construimos una aplicación juntos con algunas de las restricciones del mundo real que enfrentarías al desplegar una aplicación para tu empresa. En el camino, dispara tus preguntas hacia mí y haré lo mejor para responderlas.
Depuración del Rendimiento de React
React Advanced Conference 2023React Advanced Conference 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 🤐)