Isso pode ser óbvio para alguns, mas eu tenho me perguntado: por que devo depender do servidor do Google para hospedar o jQuery no meu site?
É apenas porque carrega mais rápido dessa maneira?
Isso pode ser óbvio para alguns, mas eu tenho me perguntado: por que devo depender do servidor do Google para hospedar o jQuery no meu site?
É apenas porque carrega mais rápido dessa maneira?
Respostas:
Isto é porque:
Existem vários cenários em que você pode não querer usar o jQuery na CDN do Google:
Quando você está construindo um aplicativo de intranet em que o servidor da web está hospedado na mesma rede que os clientes. Se você usar o CDN jQuery do Google, fará uma ligação para a Internet em vez de um servidor da rede local. Isso aumenta a largura de banda da sua organização e é mais lento.
Quando você deseja executar seu aplicativo offline . (Bastante vinculado ao primeiro problema) Se você precisar trabalhar em um ambiente de desenvolvimento (gerenciado, por exemplo, com o Bower ), poderá ser necessário fazer seu aplicativo funcionar sem nenhuma conexão com a Internet (por exemplo: em um trem :)
Quando você precisar personalizá-lo . Por exemplo, se você usar o Grunt para criar a biblioteca, a fim de usar apenas determinados módulos ou definir o nome da AMD
Quando você está servindo páginas sobre SSL que requerem jQuery. Você deve exibir o JavaScript sobre SSL e sua página para evitar problemas e avisos de segurança.
Além disso, a Microsoft hospeda o jQuery em sua CDN. Essa é outra opção comparável ao uso do jQuery hospedado no Google.
src="//ajax.googleapis.com/..."
, funcionam.
Este estudo de TJ VanToll me convenceu de que é melhor concatenar o jQuery com outros scripts, em vez de carregá-lo de uma CDN.
O motivo é a latência envolvida na busca do jQuery em dispositivos móveis:
"Em 2012, o tempo médio de RTT em uma rede móvel nos Estados Unidos era de 344ms. E esses 344ms se aplicam não apenas a todas as solicitações HTTP - das quais a página da Web média agora faz 93 -, mas também a todas as pesquisas de DNS e conexões TCP ... Enquanto as RTTs médias estão melhorando, há apenas pequenos ganhos adicionais a serem obtidos, já que as redes atuais estão dentro de um pequeno fator do limite teórico ditado pela física ".
Ele também cita esta postagem de Steve Souders, que mostra por que é improvável que você obtenha o benefício de cache usando uma CDN:
"Devido à fragmentação nos provedores de CDN, nas versões jQuery e no uso do protocolo (http vs. https), as chances de obter um acerto no cache da CDN são surpreendentemente baixas - e o download de um domínio externo tem o potencial de executar não apenas 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 visitou um site que estava carregando suas bibliotecas JavaScript, digamos jQuery, por exemplo, a partir da CDN do Google, quando visitam seu site, a biblioteca já está no cache do navegador do usuário e não precisará ser baixada novamente. . Isso parece ótimo em teoria.
Os benefícios compartilhados aqui e em outros lugares são todos teóricos. Acabei de encontrar uma análise detalhada do uso de uma CDN e se ela oferece os benefícios de desempenho esperados. http://www.root777.com/appdev/does-using-google-libraries-api-cdn-give-you-performance-benefits
Um dos principais motivos para NÃO permitir que o Google hospede seu jQuery, que muitas pessoas não pensam, é que ele não será baixado se você estiver na China. Está bloqueado junto com muitos outros scripts, fontes, etc ... hospedados pelas CDNs do Google. Se você precisar alcançar um público chinês, é melhor sempre usar 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ê deseja carregar o jQuery a partir de uma CDN.
Mas, para resumir, você está basicamente melhorando o desempenho geral do site / aplicativo.
Ao designar a CDN com um técnico de serviço, você pode fazer o download da CDN uma vez na vida útil do cliente e nem sempre que atualizar seu código.