Existe algum benefício REAL de toque em usar a biblioteca hospedada por jQuery do Google? Ou devemos apenas baixá-lo para nosso servidor?
Quais são suas opiniões sobre isso?
Comentários
- Um simples google a pesquisa teria fornecido a resposta …
Resposta
Existem dois benefícios principais em usar um CDN externo como o Google para hospedar jQuery:
- É mais rápido. Será certamente ser mais rápido do que o seu site e provavelmente mais rápido do que qualquer CDN que você mesmo configurou.
- Ele pode já estar armazenado em cache . Muitos sites fazem referência à jQuery no CDN do Google também, então, se eles acessaram outro site com ela antes do seu, nem precisarão fazer o download.
Potencial desvantagens:
- O domínio pode estar bloqueado (isso é bastante comum em lugares como a China ). Você pode resolver isso com um substituto local ( veja ele para saber como ).
- A fragmentação dos números de versão é bastante alta, então os visitantes do seu site podem ter muitas versões diferentes em cache, mas não aquela que você referenciou ( veja aqui algumas estatísticas recentes ). No entanto, isso é apenas um problema no primeiro carregamento da página.
Comentários
- Você pode postar uma referência de como configurar um substituto local?
- Como Zistolen apontou antes, outro benefício é que ele fará o download em paralelo aos outros ativos do seu site. Você pode querer adicionar isso também a esta resposta excelente.
- Isso ‘ é um pouco enganador. Os navegadores baixam ativos em paralelo, independentemente de onde estejam hospedados, mas há um limite para o número de coisas que eles ‘ baixam do mesmo host ao mesmo tempo.
- Eu pulei isso honestamente, ‘ nem aqui nem ali – o arquivo pode ser baixado em paralelo, mas ‘ é também um Pesquisa DNS. Além disso, qualquer diferença de tempo que qualquer um deles faça é insignificante de qualquer maneira.
- Muito justo. Mas em conexões rápidas, isso não pode resultar em um tempo de carregamento total mais rápido, já que mais do ” pipe ” pode ser usado?
Resposta
Outra desvantagem:
Usar um CDN permite que o operador do CDN rastreie os visitantes dos sites. É por isso que eles não custam dinheiro.
Comentários
- Rastreamento certo, mas não visitantes: ambos jquery ‘ s próprios e google ‘ s jquery CDN estão hospedados em domínios que não ‘ definem ou usam cookies (isto é provavelmente também uma otimização de desempenho), e ‘ s nenhuma informação realmente identificável na solicitação. O provedor de CDN pode ter uma ideia sobre endereços IP e algumas estatísticas sobre cadeias de caracteres e referenciadores do agente do usuário. Isso provavelmente é valioso, mas ‘ não é por si só um grande risco de privacidade (se esses registros estivessem relacionados a outro banco de dados – digamos, anúncios personalizados veiculados em horários semelhantes – então talvez pudesse um meio de rastreamento).
- Acho que pode ser dado como certo (no caso do google), que os dados estão correlacionados com outros bancos de dados, já que quase todo mundo usa o Google para pesquisar o tempo todo. A mesma coisa com as fontes do Google: recentemente tentei hospedar as fontes em um servidor, mas descobri que é muito difícil fazer isso. O Google não proíbe isso (código aberto), mas eles não ‘ fornecem os arquivos prontos para uso: você pode compilá-los sozinho (mas há nenhum makefile), ou você pode forjar solicitações para os servidores que são usados para entregá-los normalmente. Ambos não são viáveis para um não técnico.
- Talvez. Eu não ‘ não tenho nenhuma informação privilegiada, então ‘ é difícil ter certeza. Eu ‘ tenho certeza de que ‘ apresentará bugs e terá lacunas significativas, no entanto: a maioria dos lugares em que uso a Internet usa NAT, e vários têm vários usuários com máquinas semelhantes (provavelmente strings UA idênticas) – seria ‘ impossível saber qual solicitação veio de quem. E, claro, com os botões de compartilhamento social e adsense, eles podem ter meios mais confiáveis quase sempre, então posso imaginar que eles não ‘ se incomodam. Quanto às fontes – ‘ baixei várias vezes, então ‘ não entendo muito bem o que você quer dizer com difícil?
- Para ser claro: eu ‘ estou supondo que a maioria das visitas ao site que você faz pode e será rastreada por grandes coletores de estatísticas em virtude de botões de compartilhamento social (bastante difundidos) e anúncios, que estão em quase todos os lugares. Então, eu só me pergunto o quão valiosas são as informações possivelmente enganosas de solicitações js altamente armazenadas em cache – eu ‘ estou apostando, não muito, portanto, presumo que eles não ‘ não se preocupe em tentar identificar pessoalmente as pessoas usando JS servido por CDN.
- Não é tão armazenado em cache como se poderia pensar – Ao incorporar fontes usando a forma como o Google prefere, inserindo um link CSS para fonts.googleapis. com, cada visualização de página abre uma conexão com o google (você pode vê-los no Firebug). Não ‘ importa se armazenado em cache ou não. Quanto ao download: você pode me indicar um lugar onde eu possa baixar as fontes em formato eot, woff, ttf e svg de alta qualidade (mesmas versões que o Google entrega, sem conversores externos)?
Resposta
Usar CDN (s) para fragmentar suas dependências em muitos servidores como este representa basicamente uma troca entre largura de banda e latência, assumindo que você só se preocupa sobre o desempenho.
A propósito, estou assumindo que a alternativa não é simplesmente hospedá-lo localmente, mas concatená-lo com uma solicitação local diferente – geralmente não há um bom motivo para não concatenar quando você pode.
Se a largura de banda for infinita, é melhor NÃO fragmentar, porque você será tão lento quanto seu serviço mais lento – já que as latências não são perfeitamente previsíveis, com serviços suficientes, mesmo se forem rápidos, você só precisa de um pouco de azar para causar um carregamento lento da página.
Se a latência for 0, espalhar sua carga por muitos servidores pode melhorar a largura de banda, utilizando muitos servidores rs (não é muito útil, pois provavelmente as limitações de largura de banda estão perto dos clientes, não dos servidores), mas mais importante, pode reduzir ligeiramente a quantidade de dados transmitidos, aumentando a eficácia do cache.
Depende de seu cenário, mas eu geralmente espero que a latência seja mais um problema do que a largura de banda, a menos que seus scripts sejam insanamente enormes (o que o jquery não é). Nesse ponto, geralmente é mais rápido hospedar o jquery como parte de um arquivo local concatenado.
Os motivos para não hospedar localmente são, por exemplo, quando você paga pela largura de banda ou está hospedando em algum servidor lento ( sua conexão com o cliente é afunilada do seu lado, não do cliente, ou você sabe que seus clientes terão uma largura de banda muito baixa (dsl ou modems de baixo custo, digamos – o celular tende a ter mais problemas de latência do que problemas de largura de banda) , ou seus clientes pagam pela largura de banda (por exemplo, celular) e os scripts são uma parte tão perceptível disso que pequenas vitórias em cache importam (pouco provável).
Em qualquer caso: muito mais relevante será se você ” cobrimos o básico primeiro; cabeçalhos de armazenamento em cache apropriados, concatenação, minificação e gzipamento (de preferência com uma alta taxa de compactação). E aqui está o ponto crucial: se você NÃO “T fizer isso, então pelo menos o CDN o fará, para que” s ganhe …
TL; DR: Se você tiver concatenação + minificação + gzipamento + cache totalmente coberto, então servir pequenos scripts localmente é mais rápido do que a partir de um CDN apesar do melhor desempenho do CDN – mas apenas se você tiver feito sua lição de casa, possivelmente não no primeiro carregamento da página, e definitivamente há exceções a esta regra.
Comentários
- A propósito, há alguns fragmentos de bytes obtidos usando apenas uma solicitação: os cabeçalhos sozinhos chegam a quase 1kb, o que em uma carga útil de 28k não é ‘ nada. O gzip funciona melhor com mais contexto, o que economiza mais 0,5k. TCP, DNS e sobrecargas HTTPS podem todos adicione facilmente um KB aqui ou ali e, pior ainda, RTT ‘ s. É ‘ por que para arquivos pequenos como este um CDN é um não como rápido como você pode imaginar.
Resposta
Usar a biblioteca hospedada em jQuery pelo Google permite que sua página seja carregado mais rápido. Na verdade, a biblioteca é carregada ao mesmo tempo que sua página, em vez de depois.
Comentários
- Mas como isso afeta o carregamento da página?
- Bibliotecas locais também são carregadas enquanto a página é carregada – Em ambos os casos, o download do ativo começa quando o navegador (moderno) vê o snippet de código que aciona o download, o que geralmente acontece antes de todo o documento ser baixado . Veja esta captura de tela do Firebug para um exemplo