Atualização baseada em comentários:
Versão curta: Não importa muito, mas pode depender do que eles hospedam. Todos eles acolhimento coisas diferentes: Google não hospeda jQuery.Validate, a Microsoft não fez anfitrião jQuery-UI, desde 2016 eles fazem !!, 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ê estiver criando um aplicativo de intranet, fique longe da abordagem da 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 uma CDN para um aplicativo estritamente interno, estará prejudicando o desempenho . Defina corretamente os cabeçalhos de expiração do cache e ignore as CDNs no cenário somente da intranet.
As chances de serem bloqueadas parecem quase iguais, quase nulas. Eu trabalhei em contratos onde isso não é verdade, mas parece ser uma exceção. Além disso, desde a postagem original desta resposta, o contexto em torno dela mudou bastante, a CDN da Microsoft fez muitos progressos.
O projeto em que estou atualmente usa as duas CDNs, que funcionam melhor para nossa solução. Vários fatores contribuem para isso. Os usuários com um navegador mais antigo provavelmente ainda estão fazendo 2 solicitações simultâneas por domínio, conforme recomendado pela especificação HTTP . Isso não é um problema para quem executa algo decentemente novo que suporta pipelining (todos os navegadores atuais), mas com base em outro fator, estamos eliminando essa limitação também, pelo menos no que diz respeito ao javascript.
CDN do Google que estamos usando para:
CDN da Microsoft que estamos usando para:
Nosso servidor:
- Combined.js? V = 2.2.0.6190 (Major.Minor.Iteration.Changeset)
Como parte do nosso processo de compilação está combinando e minificando todo o javascript personalizado, fazemos isso por meio de um gerenciador de scripts personalizado que inclui as versões de lançamento ou depuração (não minificadas) desses scripts, dependendo da compilação. Como o Google não hospeda o pacote de validação do jQuery, isso pode ser uma desvantagem. O MVC está incluindo / usando isso em sua versão 2.0, para que você possa confiar completamente na CDN da Microsoft para todas as suas necessidades, e tudo isso automaticamente através do ScriptManager .
O único outro argumento a ser levantado seria o tempo de DNS; há um custo para isso em termos de velocidade de carregamento da página. Em média: simplesmente porque é usado mais (já existe há mais tempo) ajax.googleapis.com
provavelmente será retornado pelo DNS mais cedo do que ajax.microsoft.com
, simplesmente porque o servidor DNS local tem mais chances de receber uma solicitação (este é o primeiro usuário na penalidade de área) . Isso é algo muito pequeno e só deve ser considerado se o desempenho for extremamente importante, até o milissegundo.
(Sim: eu sei que esse ponto é contrário ao uso das duas CDNs, mas, no nosso caso, o tempo do DNS é muito ofuscado pelo tempo de espera no javascript / bloqueio que ocorre)
Por fim, se você ainda não viu, uma das melhores ferramentas disponíveis no mercado é o Firebug , e alguns plug-ins: Speed da página e YSlow . Se você usa uma CDN, mas suas páginas solicitam imagens todas as vezes por causa de nenhum cabeçalho de cache, você está perdendo a fruta mais baixa. O painel Net do Firebug pode rapidamente fornecer uma rápida análise do tempo de carregamento da página, e o Page Speed / YSlow pode oferecer algumas boas sugestões para ajudar.
Você deve usar absolutamente o CDN do Google para jQuery (e isso é proveniente de um desenvolvedor centralizado na Microsoft).
São estatísticas simples. Aqueles que considerariam usar o MS CDN para jQuery sempre serão uma minoria. Existem muitos desenvolvedores que não são de MS usando jQuery que usarão o Google e não considerariam o uso da Microsoft. Como uma das grandes vitórias com uma CDN pública é o cache aprimorado , a divisão do uso entre várias CDNs diminui o potencial para esse benefício.
fonte
O Google enviará a você uma versão jQuery minificada com seu próprio software; essa versão é 6kb mais leve que a versão minificada padrão oferecida pela MS. Vá para o Google.
fonte
Uma coisa pequena a considerar é que ambas as empresas oferecem bibliotecas "extras" ligeiramente diferentes:
Dependendo das suas necessidades, isso pode ser relevante.
fonte
Observe também que, como ajax.microsoft.com é um subdomínio das solicitações do microsoft.com, todos os cookies do microsoft.com são enviados, aumentando o tempo total necessário para recuperar o arquivo.
Além disso, ajax.microsoft.com está usando a compactação padrão do IIS7, que é inferior à compactação padrão que outros servidores da Web usam.
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 outros usuários mencionaram, o Google CDN é muito mais popular, o que aumenta muito a chance de um arquivo ser armazenado em cache.
Então eu recomendo usar o google.
fonte
Provavelmente não importa, mas você pode validar isso com alguns testes A / B. Envie metade do seu tráfego para um CDN e metade para o outro e configure alguns perfis para medir a resposta. Eu acho que é mais importante poder alternar facilmente caso um ou outro tenha sérios problemas de indisponibilidade.
fonte
Eu sei que estou falando um pouco tarde aqui, mas aqui está o código que eu tenho usado na produção. Nunca tive problemas com isso, mas sua milhagem pode variar. Certifique-se de testá-lo em seu próprio ambiente.
fonte
É sobre estatísticas: jquery.com carrega o jQuery do Google. E o Twitter também, Stackoverflow e muitos outros. Portanto, existem possibilidades muito altas de que o usuário do site já o armazene em cache = nenhum download .
Esqueça o validador, a largura de banda e a velocidade, porque esse é o principal benefício. Caso contrário, qualquer outra opção da CDN funcionará essencialmente no mesmo nível.
fonte
Eu estava realmente curioso disso, então configurei uma página de teste do jsbin usando cada um dos itens a seguir e executei-a na ferramenta de comparação visual do webpagetest.org. Eu testei:
Quem foi o mais rápido: code.jquery.com por 0,1 segundo nos dois testes
Quem foi o mais lento: ajax.aspnetcdn.com por 0,7 segundos no primeiro teste e ajax.googleapis.com por 1 segundo no segundo teste
Aqui está o primeiro teste (cada um foi testado 3 vezes):
Vídeo: http://www.webpagetest.org/video/view.php?id=121019_16c5e25eff2937f63cc1714ed1eac814794e62b3
Relatórios: http://www.webpagetest.org/video/compare.php?tests=121019_D2_KF0,121019_9Q_KF1,121019_WW_KF2,121019_9K_KF3
Aqui está o segundo teste (mais três cada):
Vídeo: http://www.webpagetest.org/video/view.php?id=121019_a7b351f706cad2c25664fee7ef349371f17c4e74
Relatórios: http://www.webpagetest.org/video/compare.php?tests=121019_MP_KJN,121019_S6_KJP,121019_V9_KJQ,121019_VY_KJR
fonte
Como afirma Pingdom :
fonte
Eu acho que depende de onde está o seu público-alvo. Você pode usar o alertra.com para verificar a velocidade da CDN em vários locais do mundo.
fonte
Uma consideração adicional - se o seu site for SSL e você precisar oferecer suporte ao Android 2.1 (ou anterior), o certificado SSL na versão HTTPS da CDN da Microsoft trava essas versões do navegador Android, de acordo com este problema: http: // code .google.com / p / android / issues / detail? id = 5001 . Não é "culpa" da Microsoft, pois o certificado SSL é tecnicamente válido e o defeito está na implementação SSL do Android ... mas, mesmo assim, ele trava o site.
O certificado SSL na CDN do Google não entra em conflito com esse problema específico (relacionado ao "Nome alternativo do sujeito do certificado").
Portanto, para suporte ao SSL + Android 2.1, use o CDN do Google.
fonte
Minha resposta é um pouco diferente das outras, irei com a microsoft se você precisar do jquery validator que quase todo mundo precisa se você estiver usando o jquery.
A conexão http da CDN da Microsoft é Keep-Alive, que é grande vantagem quando você está solicitando vários itens.
Portanto, se você precisar da validação de jquery, use o Microsoft CDN, mesmo que você precise do jquery ui. então misturar dessa maneira é positivo. Se você estiver usando a Microsoft apenas para validador, estará fazendo uma conexão separada com o servidor do Google para cada solicitação.
fonte
No verão, diz que a Microsoft não está oferecendo interface do usuário, isso não está correto (mais). Pode ser baixado em http://www.asp.net/ajaxlibrary/cdn.ashx .
fonte
Considere também, ao usar o CDN do Google, que algumas vezes as pessoas cometem erros de digitação, como ajax.googelapis.com. Isso pode potencialmente criar um ataque xss (script entre sites) realmente muito desagradável. Na verdade, testei isso registrando um erro de digitação no googlapis.com e rapidamente me vi servindo solicitações de javascript, mapas, css etc.
Enviei um e-mail ao Google e solicitei que registrassem URLs de erro de digitação CDN semelhantes, mas não obtivemos resposta. Esse pode ser um motivo real para não confiar nas CDNs, porque há invasores potencialmente perigosos aguardando as solicitações de erro de digitação e pode servir com facilidade jquery etc, com uma carga útil de xss.
Obrigado
fonte
Dependendo do setor de destino do aplicativo, você pode não querer usar uma CDN gerenciada por outras organizações. Muitas vezes, levanta questões relacionadas à conformidade, privacidade e confidencialidade.
Por exemplo, quando você inclui o Google Analytics em um aplicativo seguro, o navegador ainda envia o URL atual como o cabeçalho "referenciador". Quaisquer identificadores, digamos, um ID de sessão ou token secreto, podem aparecer em seus logs. Por exemplo, se um IP de cliente 192.0.2.5 fizer referência a https: //healthsystem.example/condition/impotence , então você poderá inferir informações que são consideradas bastante privadas.
Outros casos incluem informações importantes, como número da conta, número do seguro social ou informações da sessão no URL. Esse tipo de dado nunca deve estar no URL, pois pode ser usado fora do aplicativo.
Embora você possa confiar no Google, Microsoft ou Yahoo, seus usuários não.
Para setores como Finanças, Jurídico e Assistência à Saúde, convém estabelecer seu próprio CDN com a ajuda de um fornecedor (por exemplo, Akamai) com o qual você pode assinar um BAA.
fonte
Recomendamos que você baseie seu uso na localização geral dos usuários que você está segmentando.
Se o seu site for direcionado ao público em geral, usar a CDN do Google seria uma boa opção.
Se o seu site também é direcionado para a China, usar a CDN da Microsoft seria uma escolha melhor. Sei pela minha experiência, pois os servidores do Google ficavam bloqueados pelo governo chinês, tornando os sites que os usam não carregáveis.
* Observe que você pode criar sites específicos da região, por exemplo, cn.mysite.com para atender especificamente à China, mas se você tiver pouco tempo e recursos, vale a pena considerar.
Lista completa de CDN da Microsoft aqui. http://www.asp.net/ajaxlibrary/cdn.ashx
Eles renomearam para ajax.aspnetcdn.com , o que reduz a probabilidade de bloqueio por regras de firewall.
fonte
Eu usaria os dois!
Como a hospedagem do Google Jquery existe há muito mais tempo, as chances são muito maiores de que as pessoas já o tenham armazenado em cache em comparação com o da Microsoft, então eu o gostaria primeiro.
Pessoalmente, eu usaria algo assim -
(Não tenho certeza se 100% funciona, mas eu ia escrever a idéia e não o exemplo - isso faz referência ao Jquery hospedado no Google e não ao da Microsoft, pois não consegui encontrar o link)
fonte
jQuery
nunca será definido, a menos que você o tenha carregado ativamente. No seu script, o primeiro ramo sempre será executado (a menos que você tenha outra inclusão no jQuery acima), tornando o script supérfluo.