Pergunta

Será que realmente importa qual CDN você usa para ligação ao seu arquivo jquery ou qualquer arquivo javascript para esse assunto. É um potencialmente mais rápido do que o outro? Que outros fatores podem desempenhar um papel no qual CDN você decidir usar? Eu sei que a Microsoft, Yahoo e Google todos têm CDN de agora.

Foi útil?

Solução

Atualizar base em comentários:

Versão curta: Não importa muito, mas pode depender do que eles host. Todos eles acolhimento coisas diferentes: Google não hospeda jQuery.Validate, a Microsoft não acolhimento jQuery-UI, desde 2016 eles !!, a Microsoft oferece seus scripts que seriam servidos via ScriptResource.axd e uma integração mais fácil (por exemplo, ScriptManager com ASP.Net 4.0 ).

Nota importante: Se você está construindo uma aplicação intranet, ficar longe da abordagem CDN. Não importa quem está hospedando-o, a menos que você está em um muito servidor sobrecarregado internamente, não CDN lhe dará mais desempenho do que 100mb local / 1GB Ethernet. Se você usar um CDN para uma aplicação estritamente interna, você está desempenho ferir . Defina suas cabeçalhos de expiração de cache corretamente e existem ignorar CDNs na intranet-único cenário.

As chances de ambos serem bloqueados parece ser quase igual, quase zero. Eu tenho trabalhado em contratos em que isso não é verdade, mas parece ser uma exceção. Além disso, desde o lançamento original desta resposta, o contexto em torno dela mudou muito, a Microsoft CDN tem feito um grande progresso.

O projeto que eu estou atualmente em usos ambos CDNs que funciona melhor para a nossa solução. Vários fatores influenciam isto. Os utilizadores com uma mais velho navegador ainda estão provavelmente fazendo 2 solicitações simultâneas por domínio como recomendado pelo HTTP especificação . Este não é um problema para qualquer execução de tudo decentemente nova que suportes pipelining (cada navegador atual) , mas com base em outro fator que está batendo para fora esta limitação, bem como, pelo menos, tanto quanto o javascript.

CDN do Google estamos usando para:

CDN da Microsoft que estamos usando para:

O nosso servidor:

  • Combined.js? V = 2.2.0.6190 (Major.Minor.Iteration.Changeset)

Uma vez que parte do nosso processo de construção é combinar e minifying todos javascript costume, fazemos isso através de um gerente de script personalizado que inclui o lançamento ou de depuração (não-minified) versões desses roteiros, dependendo da construção. Desde que o Google não hospeda o pacote de validação jQuery, isso pode ser um lado negativo. MVC é inclusive / usando isso em sua versão 2.0, para que você possa confiar inteiramente em CDN da Microsoft para todas as suas necessidades, e tudo isso automática via o ScriptManager .

O único outro argumento a ser feito seria vezes DNS, há um custo para isso em termos de velocidade de carregamento da página. em média: Simplesmente porque ele é usado mais (que tem sido em torno de tempoer) ajax.googleapis.com é susceptível de ser devolvido pelo DNS mais cedo do que ajax.microsoft.com, simplesmente porque o servidor DNS local era mais provável conseguir um pedido (este é um primeiro usuário na pena de área). Este é um muito menor coisa e só deve ser considerada se o desempenho é extremamente importante, até ao milésimo de segundo.
(Sim: Sei que este ponto é contrário à minha utilizando ambos CDNs, mas no nosso caso, o tempo de DNS é muito ofuscada pelo tempo de espera no javascript / bloqueio que ocorre)

Por último, se você ainda não olhou para ele, uma das melhores ferramentas de lá fora é Firebug , e alguns plug-ins para ele: Page Speed ?? e YSlow . Se você usar um CDN, mas suas páginas estão solicitando imagens cada vez, porque de não cache-headers, você está perdendo o fruto-pendurado baixo. Net painel do Firebug pode rapidamente dar-lhe uma análise rápida de sua página carga tempo, e Page Speed ??/ YSlow pode oferecer algumas boas sugestões para ajudar.

Outras dicas

Você deve absolutamente usar o Google CDN para jQuery (e este é proveniente de um desenvolvedor Microsoft-centric).

É estatísticas simples. Aqueles que considerar o uso do MS CDN para jQuery será sempre uma minoria. Existem muitos desenvolvedores não-MS usando jQuery que usarão Google e não iria considerar o uso da Microsoft. Desde href="http://encosia.com/3-reasons-why-you-should-let-google-host-jquery-for-you/" das grandes vitórias com um pública CDN é melhorada caching , uso de divisão entre vários CDNs diminui o potencial para esse benefício.

O Google enviará uma versão jQuery minified com o seu próprio software, esta versão é 6kb mais leve do que a versão minified padrão servido por MS. Ir para o Google.

Uma pequena coisa a considerar é que ambas as empresas oferecem ligeiramente diferentes bibliotecas "extra":

Dependendo de suas necessidades, isso pode ser relevante.

Deve também ser notado que como ajax.microsoft.com é um sub-domínio de microsoft.com pedidos enviar todos os cookies microsoft.com adicionando ao tempo total que leva para chegar a parte de trás do arquivo.

Além disso, ajax.microsoft.com está usando compressão IIS7 padrão que é inferior à compressão padrão que outros servidores web usar.

http://ajax.microsoft.com/ajax/jquery/jquery-1.4 .4.min.js - 33.4K

http://ajax.googleapis.com/ajax/libs/jquery /1.4.4/jquery.min.js - 26.5K

Além disso, como já foi mencionado google CDN é a maneira mais popular, o que aumenta a chance de um arquivo que está sendo armazenada em cache.

Então, eu recomendo fortemente o uso do Google.

Provavelmente não importa, mas você pode validar isso com alguns testes A / B. Enviar a metade de seu tráfego para um CDN, e metade para o outro, e configurar alguns perfis de medir a resposta. Eu acho que mais importante ser capaz de mudar facilmente no caso de um ou outro teve alguns problemas sérios de indisponibilidade.

Eu sei que estou carrilhão em um pouco tarde aqui, mas aqui está o código que eu tenho usado na produção. Eu nunca tive problemas com ele, mas sua milhagem pode variar. Certifique-se de testá-lo em seu próprio ambiente.

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>    
<script type="text/javascript">
    !window.jQuery && document.write('<script src="/scripts/jquery-1.4.2.min.js"><\/script>')
</script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/jquery-ui.min.js" type="text/javascript"></script>
<script type="text/javascript">
    !window.jQuery.ui && document.write('<script src="/scripts/jquery-ui-1.8.2.min.js"><\/script>')
</script> 

É sobre estatísticas: jquery.com cargas jQuery do Google. E o mesmo acontece com o Twitter, Stackoverflow e muitos outros. Assim, não são muito altas possibilidades de que seu usuário do site já tem em cache = sem download em tudo .

Esqueça validador, largura de banda e velocidade, porque este é o grande benefício. Caso contrário, qualquer outra opção CDN irá realizar essencialmente no mesmo nível.

É um potencialmente mais rápido do que o outro?

Eu estava realmente curioso deste-me de configuração para que eu uma página de teste jsbin usando cada um dos seguintes e, em seguida, correu-lo através do webpagetest.org ferramenta de comparação visual. Eu testei:

  1. ajax.googleapis.com
  2. code.jquery.com
  3. ajax.aspnetcdn.com
  4. cdnjs.cloudflare.com

Quem foi o mais rápido: code.jquery.com por 0,1 segundo em ambos os testes

Quem foi mais lenta: ajax.aspnetcdn.com por 0,7 segundos no primeiro teste e ajax.googleapis.com por 1 segundo em segundo teste

Aqui está o 1º teste (cada um foi testado 3 vezes):

Vídeo: http: //www.webpagetest .org / vídeo / view.php? id = 121019_16c5e25eff2937f63cc1714ed1eac814794e62b3

Relatórios: http :? //www.webpagetest.org/video/compare.php testes = 121019_D2_KF0,121019_9Q_KF1,121019_WW_KF2,121019_9K_KF3

Aqui está o 2º teste (outro 3 cada):

Vídeo: http: //www.webpagetest .org / vídeo / view.php? id = 121019_a7b351f706cad2c25664fee7ef349371f17c4e74

Relatórios: http :? //www.webpagetest.org/video/compare.php testes = 121019_MP_KJN, 121019_S6_KJP, 121019_V9_KJQ, 121019_VY_KJR

Como afirmado por Pingdom :

Quando alguém visita seu site, se eles já visitou outra site que usa o mesmo arquivo jQuery no mesmo CDN, a vontade de arquivo foram armazenados em cache e não precisa ser baixado em tudo. Não pode obter qualquer mais rápido do que isso.

Isto significa que o CDN mais utilizado terá as chances do seu o outro, que pode pagar para o seu site.

Algumas observações sobre o desempenho: CDN do Google é consistentemente o mais lento dos três tanto na América do Norte e Europa. Na Europa, a CDN da Microsoft é o mais rápido.

Eu acho que depende de onde é o seu público-alvo. Você pode usar alertra.com para verificar a velocidade CDN a partir de muitos lugares ao redor do mundo.

Uma consideração adicional - se o site é SSL e você precisa para apoiar Android 2.1 (ou anterior), o certificado SSL na versão HTTPS do Microsoft CDN irá travar essas versões do navegador Android, por esse problema: http://code.google.com/p/android/issues/detail?id = 5001 . Não é "culpa" da Microsoft, como o certificado SSL é tecnicamente válida e o defeito está em implementação SSL do Android ... mas ele irá travar o seu site, no entanto.

O certificado SSL no CDN do Google não cair em conflito com esta questão em particular (relativo aos do certificado "Certificado Assunto Alt Name").

Assim, para 2,1 suporte SSL + Android, use o Google CDN.

A minha resposta é um pouco diferente do que outros, eu vou com a Microsoft, se você precisa jquery validador que quase todo mundo precisa se você estiver usando jQuery.

Microsoft CDN conexão http é Keep-Alive que é grande vantagem quando você está solicitando vários itens.

Então, se você precisa jQuery validação, em seguida, usar o Microsoft CDN, mesmo se você precisa jQuery UI usar o Microsoft porque o Google não não manter keep-alive para que todos os pedidos são, por si própria. de modo que a mistura na forma é mais. se você estiver usando o Microsoft apenas para validador então você está fazendo conexão separada com servidor do Google para cada solicitação.

No verão ele diz que a Microsoft não está oferecendo UI, que não está correto (mais). Pode ser downloadloade em http://www.asp.net/ajaxlibrary/cdn.ashx.

Considere também quando se usa Google CDN que algumas vezes as pessoas fazem erros de digitação, como ajax.googelapis.com. Isso poderia criar um ataque (cross site scripting) realmente desagradável XSS. Eu realmente testado este por registrar um googlapis.com erro de digitação e muito rapidamente me encontrei servindo pedidos de javascript, mapas, css etc.

Mandei um email do Google e pediu-lhes para registar CDN semelhante erro de digitação URL de mas não ouvi de volta. Esta poderia ser uma verdadeira razão para não confiar em CDN porque há atacantes potencialmente perigosos aguardam os pedidos de digitação e pode facilmente servir volta jquery etc com uma carga útil de XSS.

Obrigado

Dependendo que a indústria as metas de aplicação, você não pode querer usar um CDN geridos por outras organizações. É muitas vezes levanta questões relativas ao cumprimento, privacidade e confidencialidade.

Por exemplo, quando você incluir o Google Analytics em uma aplicação segura, o navegador ainda envia a URL atual como o cabeçalho "referer". Quaisquer identificadores, digamos, um ID de sessão ou símbolo segredo pode aparecer em seus logs. Por exemplo, se um IP do cliente de 192.0.2.5references https: //healthsystem.example/condition/impotence , em seguida, bem, você pode inferir informações que é considerada um pouco privado.

Outros casos incluem informações de conseqüência, como um número de conta, número de segurança social ou as informações da sessão na URL. Esse tipo de dados nunca devem estar na URL, pois ele pode estar fora usado da aplicação.

Enquanto você pode confiar Google, Microsoft ou Yahoo, seus usuários não podem.

Para setores como finanças, jurídico e de saúde, você pode querer criar o seu próprio CDN com a ajuda de um fornecedor (por exemplo, Akamai) com o qual você pode assinar um BAA.

eu aconselho que você basear seu uso na localização geral dos usuários que você está alvejando.

Se o seu site é voltado para o público em geral, em seguida, usando CDN do Google seria uma boa escolha.

Se o seu site também é dirigido a China, em seguida, usando CDN da Microsoft seria uma escolha melhor. Eu sei da minha experiência, como servidores do Google continuou sendo bloqueado pelo governo chinês, tornando sites que usa-los un-carregáveis.

* Note que você pode de cos criar sites específicos região, por exemplo, cn.mysite.com para atender especificamente para China, mas se você for baixo em recursos e tempo, vale a pena uma consideração.

Lista completa do Microsoft CDN aqui. http://www.asp.net/ajaxlibrary/cdn.ashx

Eles já renomeado para ajax.aspnetcdn.com , o que reduz a probabilidade de bloqueio por regras de firewall.

Gostaria de usar ambos!

Como o Google Jquery hospedagem tem sido em torno de muito mais tempo, as chances são muito maiores do que as pessoas já vai tê-lo em cache em comparação com a Microsoft um, por isso gostaria de tê-lo em primeiro lugar.

Pessoalmente, gostaria de usar algo como isto -

if (typeof jQuery == 'undefined') {  
    // jQuery is not loaded  

  document.write("<scr" + "ipt type=\"text/javascript\" src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js\"></scr" + "ipt>");
        }
} else {
    // jQuery is loaded
}

(Não sei se este% trabalhos 100, mas eu estava apenas indo para escrever a idéia e não exemplo - Este referências do Google hospedados Jquery e não a Microsoft como eu não poderia encontrar o link)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top