Y aquí está el soporte del navegador para el preload. El siguiente paso es el prefetching. Prefetching es diferente de las otras sugerencias de recursos ya que no intenta obtener algo crucial para la página actual. En su lugar, intenta obtener fuentes no críticas que pueden ser útiles en el futuro cuando el usuario decida navegar a esa página.
Así que aquí puedes ver, básicamente, cargaremos este CSS de la siguiente página siempre que el usuario vaya a esa página. Y el navegador automáticamente establece los recursos de prefetching como de baja prioridad para que no influyan en los recursos críticos necesarios para la página actual.
Una cosa a mencionar antes de continuar, también hay diferentes tipos de prefetching, digamos, estrategias. Así que puede ser influenciado por el usuario, y también puede ser influenciado por si el ratón se queda en algún punto cerca de algún enlace. Entonces el navegador también puede obtener ese enlace específico. Y un caso de uso de esto es, por ejemplo, si estamos en una página de inicio de sesión, mientras el usuario está escribiendo su contraseña en el correo electrónico, podemos usar este tiempo y ancho de banda para realmente obtener los recursos necesarios para la página que viene después del inicio de sesión, y de esa manera una vez que hagan clic en iniciar sesión, algunos de los recursos ya estarán obtenidos y la experiencia será más rápida.
Aquí está el soporte del navegador también. Por lo que he visto, solo Safari tiene algunos problemas con el prefetching, pero por lo demás está bastante bien. Y a continuación tenemos prerender, que es el tipo más caro de sugerencia de recursos, porque renderiza una página completa en segundo plano y si el usuario navega a esa página será el más rápido, pero una advertencia es que puede desperdiciar innecesariamente ancho de banda y hacer que la experiencia sea más lenta, por lo que debes tener mucho cuidado con el prerender. Aquí está el soporte del navegador, y una cosa que quiero mencionar, Chrome en realidad tiene este no state prefetch cuando usamos prerender en ese navegador, porque para minimizar la memoria, han hecho que un renderizador inicial se inicialice para recorrer los recursos y sub-recursos y lo que básicamente significa es que cuando usamos prerender en Chrome en realidad actúa más como un prefetch para ahorrar un poco de memoria.
Y la forma típica en que usamos estas sugerencias de recursos es que las ponemos en una etiqueta de enlace en nuestro head, en nuestro index.html o en algún lugar, pero puede que te estés preguntando bastante sobre Vue. Así que Vue CLI y Vite tienen algún tipo de prefetching automáticamente para los fragmentos que son divididos por ellos. Pero otra forma en que realmente podemos influir y hacer nuestras propias cosas es con una biblioteca genial que encontré que es del equipo de unifiedjs y se llama unhead. Fue hecha por Harlan Wilton, él también es un destacado colaborador de código abierto de Vue. Y básicamente esto nos permite usar un composable use head que luego podemos especificar enlaces, meta tags y cualquier otra cosa que queramos tener en nuestra etiqueta head. Así que podemos simplemente instalarlo y luego te mostraré ahora cómo podemos realmente usarlo. Así que si vamos a VS Code, aquí tengo una aplicación simple de Vue y como puedes ver tengo como dos páginas y aquí ya lo he instalado. Y estoy usando head así que podemos básicamente especificar un título y también podemos especificar enlaces. Así que aquí ya hemos especificado que tenemos un enlace a mi blog que queremos prefetch. Y si vamos al sitio web aquí puedes verlo si simplemente actualizo. Y aquí puedes ver que realmente lo prefetch y tiene la prioridad más baja. Eso significa que siempre que haya un enlace a esa página y naveguemos a ella, se cargará más rápido. Una forma en que también puedo mostrar esto es yendo a elementos y puedes ver aquí en el head que lo ha inyectado correctamente, así que está prefetched y luego cualquier recurso que tengamos. Así que esa es una forma en que podemos influir en ello. Volviendo también hay otra biblioteca que quería mencionar y esa es get.js fue hecha por el equipo de Angular y esencialmente lo que hemos estado haciendo ahora es prefetching especulativo así que basado en nuestra propia intuición decidimos qué recursos prefetch pero una mejor manera sería usar prefetching predictivo. El prefetching predictivo se basa en datos, así que es impulsado por datos y obtenemos esos datos de Google Analytics. Basado en Google Analytics y el comportamiento del usuario al hacer clic en enlaces, la forma en que funciona es que hace una cadena de Markov y la cadena de Markov es básicamente simplemente un modelo que tiene la probabilidad de pasar de un estado a otro, pero lo que eso significa para el usuario es que nosotros, basados en los datos que tenemos, podemos realmente prefetch condicionalmente lo que es más probable que el usuario vaya. Hasta donde yo sé, hay un módulo next para guest.js pero también, creo que necesita webpack, no estoy realmente seguro y no he profundizado tanto, pero también puedes hacer tu propia investigación y me encantaría escuchar lo que tú, si ya tienes experiencia con esta biblioteca Enview.
Así que pensamientos finales en conclusión, el rendimiento es un factor crítico para el éxito de cualquier aplicación web y hoy en día los usuarios tienen altas expectativas y no tolerarán aplicaciones lentas y pesadas. Así que al usar técnicas de optimización de rendimiento, minimizando la latencia de la red y el ancho de banda y usando estas sugerencias de recursos, así que prefetching predictivo, podemos mejorar el rendimiento percibido de nuestro sitio web y dar al usuario lo que necesitan y también una mejor experiencia de usuario.
Gracias por escuchar, estaré creo que en Discord esperando tus preguntas y mientras tanto también puedes encontrarme en Twitter, puedes revisar mi blog en dev.to y también puedes seguirme en YouTube para más videos sobre Vue y Frontend.
Comments