Por que devo usar o CDN do Google para jQuery?

Isso pode ser óbvio para alguns, mas eu tenho pensado: por que eu deveria depender do servidor do Google para hospedar jQuery para o meu site?

É só porque carrega mais rápido assim?

Isto é porque:

  1. Aumenta o paralelismo disponível.
    (A maioria dos navegadores só baixará 3 ou 4 arquivos de cada vez de um determinado site.)
  2. Aumenta a chance de haver um cache-hit.
    (Quanto mais sites seguirem essa prática, mais usuários já terão o arquivo pronto.)
  3. Isso garante que a carga útil seja a menor possível.
    (O Google pode pré-compactar o arquivo em uma ampla variedade de formatos (como GZIP ou DEFLATE). Isso torna o tempo para download muito pequeno, porque é super compactado e não é compactado em tempo real.)
  4. Reduz a quantidade de largura de banda usada pelo seu servidor.
    (O Google basicamente oferece largura de banda gratuita).
  5. Isso garante que o usuário receba uma resposta geograficamente próxima.
    O Google tem servidores em todo o mundo, diminuindo ainda mais a latência.
  6. (Opcional) Eles manterão seus scripts atualizados automaticamente.
    (Se você gosta de “voar pelo assento de suas calças”, você sempre pode usar a versão mais recente de qualquer script que eles ofereçam. Isso pode consertar brechas de segurança, mas geralmente apenas quebra suas coisas.)

Existem vários cenários em que você pode não querer usar o jQuery do CDN do Google:

  1. Quando você está construindo um aplicativo de intranet no qual o servidor da Web está hospedado na mesma rede que os clientes. Se você usar o CDN jQuery do Google, fará uma chamada para a Internet em vez de um servidor da Web na rede local. Isso aumenta a largura de banda da sua organização e é mais lento.

  2. Quando você deseja executar seu aplicativo off-line . (Bastante ligado ao primeiro problema) Se você precisa trabalhar em um ambiente de desenvolvimento (gerenciado, por exemplo, com o Bower ), talvez seja necessário fazer seu aplicativo funcionar sem nenhuma conexão com a Internet (por exemplo: em um trem 🙂

  3. Quando você precisar personalizá-lo . Por exemplo, se você usar o Grunt para construir a biblioteca, a fim de usar apenas determinados módulos ou definir o nome da AMD

  4. Quando você está servindo páginas sobre SSL que exigem jQuery. Você deve servir o JavaScript sobre SSL, bem como sua página, para evitar problemas de segurança e avisos.

Além disso, a Microsoft hospeda o jQuery em seu CDN. Essa é outra escolha comparável ao uso do jQuery hospedado pelo Google.

Este estudo de TJ VanToll me convenceu de que é melhor concatenar o jQuery com outros scripts em vez de carregá-lo de um CDN.

O motivo é a latência envolvida na busca de jQuery em dispositivos móveis:

“Em 2012, o tempo médio de RTT em uma rede móvel nos Estados Unidos foi de 344 ms. E esse 344ms se aplica não apenas a todas as solicitações HTTP – que a página da Web agora gera 93 – mas também a todas as pesquisas de DNS e conexões TCP … Enquanto os RTTs médios estão melhorando, há apenas pequenos ganhos adicionais, já que as redes atuais estão dentro de um pequeno fator do limite teórico ditado pela física. ”

Ele também cita este post de Steve Souders que mostra porque é improvável que você obtenha o benefício de cache usando um CDN:

“Devido à fragmentação em provedores de CDN, versões de jQuery e uso de protocolo (http vs. https), as chances de obter um cache de CDN são chocantemente baixas – e o download de um domínio externo tem o potencial de executar não um, mas três viagens de ida e volta (uma pesquisa de DNS, uma conexão TCP e um HTTP GET). ”

O maior benefício é o armazenamento em cache. A teoria é que, se um visitante visitar um site que carregava suas bibliotecas JavaScript, por exemplo, jQuery da CDN do Google, quando visitar o site, a biblioteca já estará no cache do navegador do usuário e não precisará fazer o download novamente . Isso parece ótimo na teoria.

Os benefícios sendo compartilhados aqui e em outros lugares são todos teóricos. Acabou de se deparar com uma análise profunda do uso de um CDN e se ele fornece os benefícios de desempenho esperados. http://www.root777.com/appdev/does-using-google-libraries-api-cdn-give-you-performance-benefits

Uma das principais razões para não deixar o Google hospedar seu jQuery, que muitas pessoas não pensam, é que ele não será baixado se você estiver na China. Ele está bloqueado junto com muitos outros scripts, fonts, etc., hospedados pelo Google CDN. Se você precisa alcançar um público chinês, é melhor usar sempre um fallback hospedado em seu próprio servidor. Google APIS bloqueado na China

Algumas boas respostas aqui para “Por que você deveria …” e “Por que você não deveria …”

Eu simplesmente quero adicionar uma lista de alternativas ao Google se você quiser carregar o jQuery de um CDN.

Mas, para resumir, basicamente você está melhorando o desempenho geral do seu site / aplicativo.