¿Cómo puedo precarga una página usando HTML5?


Recuerdo haber leído acerca de una meta etiqueta que hace que el navegador precarga una página. ¿Cuál es la etiqueta?

Author: Leo Jiang, 2011-10-20

5 answers

El prefetching está incluido en una especificación del W3C bajo el nombre Resource Hints. Está implementado en Firefox, Chrome, IE 11, Edge, Opera después de 12.1, y el navegador Android de 4.4.4, consulte la página de prefetch caniuse para más detalles y actualizados.

También vea las páginas caniuse y spec para tecnologías relacionadas (los navegadores soportados posteriormente se recuperan de caniuse y se actualizan a partir de septiembre de 2015):

  • Prerendering caniuse / spec (IE 11, Edge, Chrome, Opera)
  • Preconnecting caniuse / spec (Firefox, Chrome 46, Opera 33)
  • Prefetching DNS caniuse / spec (IE9 (ver la nota a continuación ), IE10, todos los demás navegadores excepto Opera Mini y quizás iOS Safari y el navegador Android)

IE 9 implementó solo prefetching de DNS pero lo llamó "prefetch" (¡precaución!). Chrome por un tiempo (al menos en lo que respecta a 2013) solo hizo previa a la representación y Prefetching DNS. Implementos IE11lazyload, para las imágenes; Microsoft ha intentado incluirlo en la especificación, pero hasta ahora no lo es. iCab se afirma que ha sido el primer navegador en implementar la prefetching, aunque este comportamiento fue automático, no controlado por el marcado.


Antecedentes históricos

La Suite de aplicaciones de Mozilla, y más tarde, Firefox, implementan la especificación (la especificación se basa en realidad en la implementación temprana de Mozilla de prefetching, que fue algo basado en el encabezado Link:especificado en RFC 2068que ahora ha sido reemplazado por RFC 2616 [que no hace referencia al encabezado Link:]. Ver esta versión antigua de los documentos () para más detalles.) Según la documentación sobre MDN ():

Link prefetching es un mecanismo de navegador, que utiliza el tiempo de inactividad del navegador para descargar o prefetch documentos que el usuario puede visitar en un futuro próximo.

El navegador busca un HTML <link> o HTTP Link: encabezado con un tipo de relación de next o prefetch.

Así que la sintaxis es:

<link rel="prefetch" href="/path/to/prefetch" />

También puede usar el encabezado HTTP Link::

Link: </page/to/prefetch>; rel=prefetch

O un <meta> para simular el mismo encabezado HTTP:

<meta http-equiv="Link" content="&lt;/page/to/prefetch&gt;; rel=prefetch">

Tenga en cuenta que la relación next también se puede usar, pero su función principal es indicar la página "siguiente" en la navegación, por lo que no debe usarla para recursos o información no relacionada. La prefetching también se realiza en conexiones HTTPS.

ICab

ICab parece () han implementado una precolocación temprana alrededor de 2001. iCab aparentemente prefijó todos los enlaces a páginas de contenido (no recursos), sin seguir ninguna pista que el desarrollador hubiera dejado en el marcado.

 62
Author: Félix Saparelli,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-12 10:56:33

Algunos agentes de usuario pueden optar por la precarga cuando esto está presente, pero no puede apostar por ello.

<link rel="next" href="http://www.example.com/link-reference">
 3
Author: Syntax Error,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-20 03:18:14

Esto podría no ser una buena respuesta a la pregunta, pero solo para la info InstantClick.js puede precarga sus enlaces antes de que realmente haga clic en él.

¿Cómo funciona

Antes de que los visitantes hagan clic en un enlace, pasan el cursor sobre ese enlace. Entre estos dos eventos, 200 ms a 300 ms por lo general pasan. InstantClick hace uso de ese tiempo para precarga de la página, de modo que la página ya está allí cuando se hace clic.

 2
Author: RSK,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-02 06:44:32

Hay un par de maneras en las que puedes precarga una página:

  • DNS prefetching le dice al navegador que se necesitarán algunos de los recursos de otro dominio, para que pueda resolver el DNS lo más rápido posible. Para ello, hay que añadir <link rel="dns-prefetch" href="//example.com"> en el del documento. Esto podría ser útil si necesita usar elementos de partido 3-rd.
  • Preconnect lo lleva un paso más allá y no solo resuelve DNS, sino que también hace un enlace TCP y si preconnect a https hará una negociación TLS. En el encabezado hay que añadir <link rel="preconnect" href="https://example.com/">
  • Prefetch descarga el recurso y lo almacena en la caché del navegador para usarlo más tarde. Puedes hacer <link rel="prefetch" href="imgs/image.png">. Tenga en cuenta que esto depende del navegador para decidir si tiene sentido descargar el recurso (podría ignorarlo)
  • Prerender es la opción más poderosa. Le dice al navegador que solicite la url y descargue todos los activos. <link rel="prerender" href="http://example.com/page">. Deberías estar bastante seguro de que la persona abrirá la página, de lo contrario solo perderá su ancho de banda.
 2
Author: Salvador Dali,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-25 00:06:03

La pre-codificación de los activos, es una de las tareas más difíciles y simples en un proyecto FLASH o HTML5 porque hemos hecho proyectos de conversión de FLASH a HTML5.

Los tipos más fáciles de precargadores son los precargadores estáticos utilizados para cargar la película en la que existen. Para estos precargadores, todo lo que necesita hacer es detener la película en una pantalla del precargador, generalmente el primer fotograma de la película, y mantenerla allí hasta que pueda determinar que la película se ha cargado completamente en el Flash jugador.

El precargador también detiene cualquier parpadeo o retraso al cambiar imágenes no almacenadas en una página web, ya que la misma imagen debe descargarse del servidor cada vez que sea necesario mostrarla.

Hemos usado jQuery HMTL5 Loader en nuestras aplicaciones web(HTML5), puedes ver el Repositorio Github aquí.

Este plugin necesita un archivo JSON para obtener los archivos que tiene que precargar, y puede precargar imágenes, fuentes de video y audio html5, archivos de script y texto. Además de esto, tiene un tipo diferente de cargadores (circulares, de línea, de contador grande, etc.)y características adicionales, etc.

Se implementa así.

<script>
    var loaderAnimation = $("#html5Loader").LoaderAnimation();
    $.html5Loader({getFilesToLoadJSON:'json file',
        onUpdate: loaderAnimation.update,
        debugMode:false
    });
</script>

Funciona perfectamente en diferentes navegadores como Chrome, FireFox, Safari, Opera, etc. y en navegadores móviles.

Nota: Hemos utilizado esto para nuestras aplicaciones web HTML5 que se ejecutan en diferentes plataformas, incluyendo Android e iOS.

 1
Author: Tony Jose,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-12-31 03:55:44