Quicklink | Programar Plus

Estamos en el futuro, así que, por supuesto, estamos trabajando en formas de acelerar la web con nuevas tácticas sofisticadas que van más allá de las técnicas típicas de hacer páginas más delgadas y almacenar en caché como locas.

Una táctica, de hace años, fue InstantClick:

Antes de que los visitantes hagan clic en un enlace, colocan el cursor sobre ese enlace. Entre estos dos eventos, normalmente pasan de 200 ms a 300 ms (pruebe usted mismo aquí). InstantClick aprovecha ese tiempo para precargar la página, de modo que la página ya esté allí cuando haga clic.

Inteligente, pero no tan avanzado como lo que se puede hacer en estos tiempos modernos. Por ejemplo, InstantClick no tiene en cuenta el hecho de que alguien podría no querer precargar cosas que no pidió explícitamente, especialmente si está en una red lenta.

Addy Osmani escribió un documento que llama a esto “búsqueda predictiva”:

… dada una página de entrada arbitraria, una solución podría calcular la probabilidad de que un usuario visite una página o un conjunto de páginas siguientes y precargue recursos para ellos mientras el usuario todavía está viendo su página actual. Esto tiene la posibilidad de mejorar el rendimiento de carga de la página para las visitas posteriores a la página, ya que existe una gran posibilidad de que una página ya esté en la memoria caché del usuario.

Solo piense: podríamos incorporar datos analíticos a la mezcla y dejar que el aprendizaje automático lo muerda. Addy también apunta a otros intentos anteriores, como Gatsby’s Link y un complemento de WordPress.

Otro contendiente es Quicklink de Google:

Quicklink intenta que la navegación a las páginas siguientes se cargue más rápido. Eso:

  • Detecta enlaces dentro de la ventana gráfica (usando Intersection Observer)
  • Espera hasta que el navegador esté inactivo (usando requestIdleCallback)
  • Comprueba si el usuario no tiene una conexión lenta (utilizando navigator.connection.effectiveType) o tiene el ahorro de datos habilitado (usando navigator.connection.saveData)
  • Busca previamente las URL de los enlaces (utilizando <link rel=prefetch> o XHR). Proporciona cierto control sobre la prioridad de la solicitud (puede cambiar a fetch() si es compatible).

No hay aprendizaje automático o uso de análisis allí, pero quizás el más inteligente hasta ahora. Realmente me gusta el espíritu de búsqueda previa solo cuando hay una probabilidad de uso suficientemente alta; el navegador está inactivo de todos modos y la red puede manejarlo.

Enlace directo →