Avançar para o conteúdo
SilktideAjuda

JavaScript legado

O Silktide verifica se a sua página envia código extra cuja única finalidade é dar suporte a navegadores muito antigos. Os navegadores modernos não precisam desse código, portanto, para quase todos os visitantes, ele representa tempo de transferência e processamento desperdiçado.

Quando o é preparado para publicação, as ferramentas de compilação frequentemente adicionam polyfills (substitutos para funcionalidades que faltam nos navegadores antigos) e transformações (reescritas da sintaxe moderna para equivalentes mais antigos). Quando configurados para navegadores que praticamente desapareceram, eles podem adicionar um peso considerável a cada carregamento de página.

Por que isso é importante

A esmagadora maioria dos visitantes usa navegadores que se atualizam automaticamente e oferecem suporte nativo ao JavaScript moderno. O código de compatibilidade legado faz com que todos eles paguem — em tempo de transferência, dados móveis e tempo de processamento — pela compatibilidade com navegadores que podem representar nenhuma parte do seu tráfego real.

É fácil não perceber o custo, porque nada parece errado: o site funciona em todo o lado. Ele é simplesmente mais lento do que precisa de ser, em todas as páginas e para todas as pessoas.

Como corrigir

Esta é uma correção na configuração da compilação que deve ser feita pelos seus programadores:

  1. Defina os navegadores-alvo compatíveis com a compilação com base nos navegadores que os seus visitantes realmente usam, em vez de utilizar uma predefinição legada que ficou desatualizada. A maioria das ferramentas de compilação obtém esta informação de uma declaração de compatibilidade com navegadores no projeto.
  2. Remova as importações abrangentes de polyfills que adicionam suporte para tudo e deixe a compilação incluir apenas o que os seus alvos realmente precisam.
  3. Se ainda for necessário dar suporte a algum navegador antigo, disponibilize duas compilações — uma moderna para os navegadores atuais e outra legada apenas para os navegadores que dela precisam — em vez de enviar a compilação legada para todos.

Como o Silktide testa isto

  1. Carrega a página num navegador real, utilizando o tipo de dispositivo, a velocidade de ligação e a localização de teste configurados para os seus testes de velocidade.
  2. Analisa o JavaScript que a página transfere em busca de polyfills conhecidos e transformações de sintaxe de que os navegadores modernos não precisam.
  3. Comunica cada ficheiro que contém código legado, indicando o tamanho da transferência que poderia ser poupado.
  4. Classifica a página com base no tamanho total desperdiçado: cerca de 30 KB de código legado resultam numa classificação inferior, e 100 KB ou mais são classificados como fracos.

Resolução de problemas

Ainda precisamos de dar suporte a navegadores antigos

Pergunte-se se os seus visitantes realmente os utilizam — os seus Analytics indicarão isso. Se alguns os utilizarem genuinamente, o padrão module/nomodule permite-lhe disponibilizar código legado apenas aos navegadores que dele precisam, para que os navegadores modernos deixem de suportar esse custo.

O código legado está num script de terceiros

Os scripts de outros fornecedores podem trazer o seu próprio código legado adicional, que não pode ser recompilado por si. Verifique se o fornecedor disponibiliza uma compilação moderna e avalie o valor do script face ao respetivo custo.

Saiba mais

Última atualização

Esta página foi útil?