IntroducaoLink prefetching (ou pre-carregamento de links) e um recurso oferecido por navegadores para que sites possam especificar arquivos que devem ser pre-carregados, de forma que estejam prontamente disponiveis quando solicitados, melhorando a performance e consequentemente a usabilidade do site.Ate o momento, apenas os navegadores baseados na engine Gecko (como e o caso do Firefox) implementam o link prefetching, embora a especificacao esta sendo proposta como recomendacao da W3C.Neste artigo, veremos como o recurso funciona e como tirar proveito para otimizacao de sites.Como funciona?O funcionamento do link prefetching e muito simples. Basta criar links no cabecalho do documento HTML com o atributo rel com valor "prefetch", como no exemplo abaixo:<html> <head> <link rel="prefetch" href="http://www.exemplo.com/pagina.html" /> <link rel="prefetch" href="http://www.exemplo.com/imagem.jpg" /> <link rel="prefetch" href="http://www.exemplo.com/estilo.css" /> ... </head> ...Note que pode ser especificado qualquer tipo de arquivo (html, imagens, css, js, etc).Esta lista de links sao dicas para o navegador. Basicamente o navegador vai carregar estes arquivos quando estiver ocioso. Portanto, e possivel especificar alguns arquivos que serao provavelmente acessados futuramente. Nao se preocupe: os links marcados como prefetching so serao carregados apos todos os arquivos necessarios para pagina corrente estiverem carregados, ou seja, tem baixa prioridade.A tag link tambem pode ter o atributo rel com valor "next", indicando a proxima pagina de uma lista de paginas em sequencia. Neste caso, o navegador tambem faz uso do prefetching e ja deixa a proxima pagina pre-carregada para uso. Porem, para o valor "prev" (pagina anterior), este comportamento nao se aplica, a nao ser que o link possua o valor "prev" juntamente com o valor "prefetch", separados por espaco.Tambem e possivel especificar a lista de links no cabecalho HTTP do documento enviado. Desta forma, podemos utilizar este recurso em documentos que nao sao necessariamente HTML. Por exemplo, quando acessar uma imagem, deixar a dica para o navegador pre-carregar um outro arquivo. Para especificar o link no cabecalho HTTP via PHP, faca assim:<?phpheader('Link: ; rel=prefetch');header('Link: ; rel=prefetch');header('Link: ; rel=prefetch');...Onde utilizar?O ideal e utilizar este recurso em pontos do site em que exista grande possibilidade do usuario acessar determinados arquivos no futuro. Por exemplo, supondo um site que requer autenticacao, parece-me conveniente indicar como pre-carregamento o link da pagina de login nas paginas publicas (como a pagina home do site), caso o usuario nao esteja autenticado. Afinal, se alguem acessa uma pagina publica e nao esta logado ainda, entao tem grande chance de acessar a pagina de login em breve.E importante destacar que o link prefetching so carrega o arquivo especificado e nao os arquivos dependentes. Ou seja, se voce especifica um documento HTML para ser pre-carregado, apenas o HTML sera pre-carregado (as imagens, estilos e scripts presentes no HTML nao serao).Atencao: Embora este recurso seja util em determinadas situacoes, tambem e preciso se atentar a um detalhe: quando o navegador carrega um arquivo marcado como prefetching, ele esta acessando o servidor, logo, esta consumindo recursos. Se o usuario tinha grande chances de acessar o arquivo no futuro, entao apenas antecipamos algo que provavelmente ira acontecer. Porem, se voce colocar dezenas de arquivos para serem pre-carregados e eles nao forem