¿Alguna vez quisiste informarle al navegador sobre una fuente, una secuencia de comandos o un
otro recurso importante que necesitará la página, sin retrasar el evento onload
de la página? <link rel="preload">
permite a los desarrolladores web hacer precisamente eso, mediante una sintaxis de elemento HTML conocida con algunos atributos clave para determinar el comportamiento exacto. Es un borrador de estándar que se envía como parte de la versión 50 de Chrome.
Los recursos cargados a través de <link rel="preload">
se almacenan de forma local en el navegador y son inactivos hasta que se hace referencia a ellos en el DOM, JavaScript o CSS. Por ejemplo, este es un posible caso de uso en el que se carga previamente un archivo de secuencia de comandos, pero no se ejecuta de inmediato, como lo haría si se incluyera a través de una etiqueta <script>
en el DOM.
<link rel="preload" href="used-later.js" as="script">
<!-- ...other HTML... -->
<script>
// Later on, after some condition has been met, we run the preloaded
// JavaScript by inserting a <script> tag into the DOM.
var usedLaterScript = document.createElement('script');
usedLaterScript.src = 'used-later.js';
document.body.appendChild(usedLaterScript)
</script>
Entonces, ¿qué sucede aquí? Los desarrolladores web deberían estar familiarizados con el atributo href
que se usa en ese ejemplo, ya que es el atributo estándar que se usa para especificar la URL de cualquier recurso vinculado.
Sin embargo, es probable que el atributo as
sea nuevo para ti y se use en el contexto de un elemento <link>
para brindarle al navegador más contexto sobre el destino de la solicitud de carga previa que se realiza. Esta información adicional garantiza que el navegador establezca los encabezados y la prioridad de la solicitud adecuados, y que aplique las directivas de la Política de Seguridad del Contenido relevantes que se podrían aplicar para el contexto de recursos correcto.
Obtén más información
Yoav Weiss escribió
la guía definitiva
para usar <link rel="preload">
. Si te interesa y quieres comenzar a usarlo en tus propias páginas, te recomiendo que leas su artículo para obtener más información sobre los beneficios y los casos de uso creativos.
Adiós, <link rel="subresource">
<link rel="preload">
sustituye a <link rel="subresource">
, que tiene errores y desventajas significativos y que nunca se implementó en navegadores distintos de Chrome. Por lo tanto, Chrome 50 quita la compatibilidad con <link rel="subresource">
.