Mise à jour basée sur les commentaires:
Version courte: Cela n'a pas beaucoup d'importance, mais cela peut dépendre de ce qu'ils hébergent. Ils hébergent tous des choses différentes: Google n'héberge pas jQuery.Validate, Microsoft n'a pas hébergé jQuery-UI, depuis 2016 ils le font !!, Microsoft propose leurs scripts qui autrement seraient servis via ScriptResource.axd
et une intégration plus facile (par exemple ScriptManager avec ASP. Net 4.0 ).
Remarque importante: si vous créez une application intranet, éloignez-vous de l'approche CDN. Peu importe qui l'héberge, à moins que vous ne soyez sur un serveur très surchargé en interne, aucun CDN ne vous donnera plus de performances que l'Ethernet local de 100 Mo / 1 Go. Si vous utilisez un CDN pour une application strictement interne, vous affectez les performances . Définissez correctement les en-têtes d'expiration de votre cache et ignorez que les CDN existent dans le scénario intranet uniquement.
Les chances d'être bloqué semblent être à peu près égales, presque nulles. J'ai travaillé sur des contrats où ce n'est pas vrai, mais cela semble être une exception. De plus, depuis la publication initiale de cette réponse, le contexte qui l'entoure a beaucoup changé, le CDN Microsoft a fait beaucoup de progrès.
Le projet sur lequel je suis actuellement utilise les deux CDN qui fonctionnent le mieux pour notre solution. Plusieurs facteurs jouent dans cela. Les utilisateurs avec un navigateur plus ancien font probablement encore 2 requêtes simultanées par domaine comme recommandé par la spécification HTTP . Ce n'est pas un problème pour quiconque exécute quelque chose de décemment nouveau qui prend en charge le pipelining (tous les navigateurs actuels), mais sur la base d'un autre facteur, nous éliminons également cette limitation, du moins en ce qui concerne le javascript.
Le CDN de Google que nous utilisons pour:
Le CDN de Microsoft que nous utilisons pour:
Notre serveur:
- Combined.js? V = 2.2.0.6190 (Major.Minor.Iteration.Changeset)
Étant donné qu'une partie de notre processus de construction consiste à combiner et à réduire tous les javascript personnalisés, nous le faisons via un gestionnaire de scripts personnalisé qui inclut les versions de publication ou de débogage (non minifiées) de ces scripts en fonction de la construction. Étant donné que Google n'héberge pas le package de validation jQuery, cela peut être un inconvénient. MVC inclut / utilise cela dans sa version 2.0, vous pouvez donc compter entièrement sur le CDN de Microsoft pour tous vos besoins, et tout cela automatiquement via le ScriptManager .
Le seul autre argument à faire valoir serait les temps DNS, il y a un coût en termes de vitesse de chargement des pages. En moyenne: simplement parce qu'il est plus utilisé (il existe depuis plus longtemps) ajax.googleapis.com
est susceptible d'être retourné par DNS plus tôt que ajax.microsoft.com
, simplement parce que le serveur DNS local était plus susceptible d'en recevoir une demande (il s'agit d'un premier utilisateur dans la pénalité de zone) . C'est une chose très mineure et ne devrait être prise en compte que si les performances sont extrêmement importantes, jusqu'à la milliseconde.
(Oui: je me rends compte que ce point est contraire à mon utilisation des deux CDN, mais dans notre cas, le temps DNS est largement éclipsé par le temps d'attente sur le javascript / blocage qui se produit)
Enfin, si vous ne l'avez pas regardé, l'un des meilleurs outils est Firebug , et quelques plug-ins pour cela: Page Speed et YSlow . Si vous utilisez un CDN mais que vos pages demandent des images à chaque fois en raison de l'absence d'en-têtes de cache, vous manquez le fruit à portée de main. Le panneau Net de Firebug peut vous donner rapidement une ventilation rapide du temps de chargement de votre page, et Page Speed / YSlow peut offrir de bonnes suggestions pour vous aider.