Como priorizar seus recursos com o link rel="#39;preload'

Você já quis informar ao navegador sobre uma fonte, um script ou outro recurso importante que será necessário para a página sem atrasar o evento onload dela? O <link rel="preload"> permite que os desenvolvedores da Web façam exatamente isso, usando uma sintaxe de elemento HTML conhecida com alguns atributos principais para determinar o comportamento exato. É um padrão de rascunho que faz parte do lançamento do Chrome 50.

Os recursos carregados por <link rel="preload"> são armazenados localmente no navegador e ficam efetivamente inertes até serem referenciados no DOM, JavaScript ou CSS. Por exemplo, este é um possível caso de uso em que um arquivo de script é pré-carregado, mas não é executado imediatamente, como seria se fosse incluído por uma tag <script> no 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>

O que está acontecendo aqui? Os desenvolvedores Web precisam conhecer o atributo href usado nesse exemplo, porque é o atributo padrão usado para especificar o URL de qualquer recurso vinculado.

No entanto, o atributo as provavelmente é novo para você e é usado no contexto de um elemento <link> para dar ao navegador mais contexto sobre o destino da solicitação de pré-carregamento que está sendo feita. Essas informações adicionais garantem que o navegador defina cabeçalhos de solicitação apropriados, a prioridade da solicitação e aplique todas as diretrizes relevantes da política de segurança de conteúdo que possam estar em vigor para o contexto de recurso correto.

Saiba muito mais

Yoav Weiss escreveu o guia definitivo para usar <link rel="preload">. Se você ficou interessado e quer começar a usar o recurso nas suas páginas, recomendo ler o artigo para saber mais sobre os benefícios e casos de uso criativo.

<link rel="preload"> substitui <link rel="subresource">, que tem bugs e desvantagens significativos e nunca foi implementado em navegadores que não sejam o Chrome. Por isso, o Chrome 50 remove o suporte para <link rel="subresource">.