Update basierend auf Kommentaren:
Kurzversion: Es spielt keine Rolle, aber es kann davon abhängen, was sie hosten. Sie alle hosten verschiedene Dinge: Google hostet jQuery nicht. Validieren, Microsoft hat jQuery-UI nicht gehostet, seit 2016 !!, Microsoft bietet ihre Skripte an, die sonst über bereitgestellt würden, ScriptResource.axd
und eine einfachere Integration (z . B. ScriptManager mit ASP). Netto 4.0 ).
Wichtiger Hinweis: Wenn Sie eine Intranetanwendung erstellen, halten Sie sich vom CDN-Ansatz fern. Es spielt keine Rolle, wer es hostet , es sei denn, Sie befinden sich intern auf einem stark überlasteten Server. Kein CDN bietet Ihnen mehr Leistung als lokales 100-MB / 1-GB-Ethernet. Wenn Sie ein CDN für eine streng interne Anwendung verwenden, beeinträchtigen Sie die Leistung . Stellen Sie Ihre Cache-Ablauf-Header korrekt ein und ignorieren Sie CDNs, die im Nur-Intranet-Szenario vorhanden sind.
Die Wahrscheinlichkeit, dass einer von beiden blockiert wird, scheint ungefähr gleich zu sein, fast Null. Ich habe an Verträgen gearbeitet, bei denen dies nicht der Fall ist, aber es scheint eine Ausnahme zu sein. Seit der ursprünglichen Veröffentlichung dieser Antwort hat sich der Kontext, in dem sie sich befindet, stark geändert. Das Microsoft CDN hat große Fortschritte gemacht.
Das Projekt, an dem ich gerade arbeite, verwendet beide CDNs, was für unsere Lösung am besten funktioniert. Dabei spielen mehrere Faktoren eine Rolle. Benutzer mit einem älteren Browser stellen wahrscheinlich immer noch zwei gleichzeitige Anforderungen pro Domain, wie in der HTTP-Spezifikation empfohlen . Dies ist kein Problem für jemanden, der etwas anständig Neues ausführt, das Pipelining unterstützt (jeder aktuelle Browser), aber basierend auf einem anderen Faktor beseitigen wir diese Einschränkung auch, zumindest was das Javascript betrifft.
Googles CDN, das wir verwenden für:
Microsofts CDN, das wir verwenden für:
Unser Server:
- Combined.js? V = 2.2.0.6190 (Major.Minor.Iteration.Changeset)
Da ein Teil unseres Erstellungsprozesses darin besteht, alle benutzerdefinierten Javascript zu kombinieren und zu minimieren, erfolgt dies über einen benutzerdefinierten Skriptmanager, der je nach Build die Release- oder Debug-Versionen (nicht minimiert) dieser Skripte enthält. Da Google das jQuery-Validierungspaket nicht hostet, kann dies ein Nachteil sein. MVC nimmt dies in seiner Version 2.0 auf / verwendet es, sodass Sie sich für alle Ihre Anforderungen vollständig auf das CDN von Microsoft verlassen können und dies alles automatisch über den ScriptManager .
Das einzige andere Argument, das vorgebracht werden muss, sind DNS-Zeiten. Dies ist mit Kosten für die Seitenladegeschwindigkeit verbunden. Durchschnittlich: Nur weil es mehr verwendet wird (es gibt es schon länger), ajax.googleapis.com
wird es wahrscheinlich früher von DNS zurückgegeben als ajax.microsoft.com
einfach, einfach weil der lokale DNS-Server eher eine Anfrage dafür erhalten hat (dies ist ein erster Benutzer in der Gebietsstrafe). . Dies ist eine sehr kleine Sache und sollte nur in Betracht gezogen werden, wenn die Leistung bis auf die Millisekunde extrem wichtig ist.
(Ja, mir ist klar, dass dieser Punkt meiner Verwendung beider CDNs widerspricht, aber in unserem Fall wird die DNS-Zeit durch die Wartezeit auf das auftretende Javascript / Blockieren bei weitem überschattet.)
Wenn Sie es sich nicht angesehen haben, ist Firebug eines der besten Tools und einige Plug-Ins dafür: Page Speed und YSlow . Wenn Sie ein CDN verwenden, Ihre Seiten jedoch jedes Mal Bilder anfordern, weil keine Cache-Header vorhanden sind, fehlt Ihnen die niedrig hängende Frucht. Das Net-Panel von Firebug kann Ihnen schnell eine schnelle Aufschlüsselung der Ladezeit Ihrer Seite geben, und Page Speed / YSlow bietet einige gute Vorschläge, um Ihnen zu helfen.
Sie sollten unbedingt das Google CDN für jQuery verwenden (und dies stammt von einem Microsoft-zentrierten Entwickler).
Es ist eine einfache Statistik. Diejenigen, die in Betracht ziehen würden, das MS CDN für jQuery zu verwenden, werden immer eine Minderheit sein. Es gibt zu viele Nicht-MS-Entwickler, die jQuery verwenden und Google verwenden und Microsoft nicht in Betracht ziehen. Da einer der großen Vorteile eines öffentlichen CDN das verbesserte Caching ist , verringert die Aufteilung der Nutzung auf mehrere CDNs das Potenzial für diesen Vorteil.
quelle
Google sendet Ihnen eine jQuery-Version, die mit einer eigenen Software minimiert wurde. Diese Version ist 6 KB leichter als die standardisierte minimierte Version, die von MS bereitgestellt wird. Gehen Sie zu Google.
quelle
Eine Kleinigkeit zu berücksichtigen ist, dass beide Unternehmen leicht unterschiedliche "zusätzliche" Bibliotheken anbieten:
Abhängig von Ihren Anforderungen kann dies relevant sein.
quelle
Es sollte auch beachtet werden, dass ajax.microsoft.com eine Unterdomäne von Microsoft.com-Anfragen ist, die alle Microsoft.com-Cookies senden, was die Gesamtzeit verlängert, die benötigt wird, um die Datei zurückzubekommen.
Außerdem verwendet ajax.microsoft.com die Standard-IIS7-Komprimierung, die der Standardkomprimierung anderer Webserver unterlegen ist.
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,5 KB
Wie andere bereits erwähnt haben, ist Google CDN weitaus beliebter, was die Wahrscheinlichkeit, dass eine Datei zwischengespeichert wird, erheblich erhöht.
Ich empfehle daher dringend, Google zu verwenden.
quelle
Es spielt wahrscheinlich keine Rolle, aber Sie könnten dies mit einigen A / B-Tests überprüfen. Senden Sie die Hälfte Ihres Datenverkehrs an ein CDN und die Hälfte an das andere und richten Sie eine Profilerstellung ein, um die Antwort zu messen. Ich würde es für wichtiger halten, einfach wechseln zu können, falls der eine oder andere ernsthafte Probleme mit der Nichtverfügbarkeit hatte.
quelle
Ich weiß, dass ich hier etwas spät dran bin, aber hier ist der Code, den ich in der Produktion verwendet habe. Ich hatte noch nie Probleme damit, aber Ihr Kilometerstand kann variieren. Stellen Sie sicher, dass Sie es in Ihrer eigenen Umgebung testen.
quelle
Es geht um Statistiken: jquery.com lädt jQuery von Google. Und Twitter, Stackoverflow und viele andere. Es gibt also ziemlich hohe Möglichkeiten, dass Ihr Website-Benutzer es bereits zwischengespeichert hat = überhaupt kein Download .
Vergessen Sie Validator, Bandbreite und Geschwindigkeit, da dies der Hauptvorteil ist. Andernfalls wird jede andere CDN-Option im Wesentlichen auf demselben Niveau ausgeführt.
quelle
Ich war selbst neugierig darauf, also habe ich eine jsbin-Testseite mit den folgenden Methoden eingerichtet und sie dann über das visuelle Vergleichstool von webpagetest.org ausgeführt. Ich habe getestet:
Wer war am schnellsten: code.jquery.com in beiden Tests um 0,1 Sekunden
Wer war am langsamsten: ajax.aspnetcdn.com im ersten Test um 0,7 Sekunden und ajax.googleapis.com im zweiten Test um 1 Sekunde
Hier ist der 1. Test (jeder wurde dreimal getestet):
Video: http://www.webpagetest.org/video/view.php?id=121019_16c5e25eff2937f63cc1714ed1eac814794e62b3
Berichte: http://www.webpagetest.org/video/compare.php?tests=121019_D2_KF0,121019_9Q_KF1,121019_WW_KF2,121019_9K_KF3
Hier ist der 2. Test (jeweils weitere 3):
Video: http://www.webpagetest.org/video/view.php?id=121019_a7b351f706cad2c25664fee7ef349371f17c4e74
Berichte: http://www.webpagetest.org/video/compare.php?tests=121019_MP_KJN,121019_S6_KJP,121019_V9_KJQ,121019_VY_KJR
quelle
Wie von Pingdom angegeben :
quelle
Ich denke, es hängt davon ab, wo sich Ihre Zielgruppe befindet. Sie können alertra.com verwenden, um beide CDN-Geschwindigkeiten von vielen Standorten auf der ganzen Welt aus zu überprüfen.
quelle
Eine zusätzliche Überlegung: Wenn Ihre Site SSL ist und Sie Android 2.1 (oder früher) unterstützen müssen, stürzt das SSL-Zertifikat in der HTTPS-Version des Microsoft CDN diese Versionen des Android-Browsers gemäß diesem Problem ab: http: // code .google.com / p / android / Issues / Detail? id = 5001 . Es ist nicht der "Fehler" von Microsoft, da das SSL-Zertifikat technisch gültig ist und der Fehler in der SSL-Implementierung von Android liegt ... aber es wird trotzdem Ihre Site zum Absturz bringen.
Das SSL-Zertifikat auf dem CDN von Google ist von diesem speziellen Problem nicht betroffen (in Bezug auf den "Alt-Namen des Zertifikatsbetreffs" des Zertifikats).
Verwenden Sie für die Unterstützung von SSL + Android 2.1 das Google CDN.
quelle
Meine Antwort ist etwas anders als die anderer. Ich werde mich für Microsoft entscheiden, wenn Sie einen JQuery-Validator benötigen, den fast jeder benötigt, wenn Sie JQuery verwenden.
Die Microsoft CDN-http-Verbindung ist Keep-Alive. Dies ist ein großes Plus, wenn Sie mehrere Elemente anfordern.
Wenn Sie also eine JQuery-Validierung benötigen, verwenden Sie Microsoft CDN, auch wenn Sie eine JQuery-Benutzeroberfläche benötigen. Verwenden Sie Microsoft, da Google nicht die Keep-Alive-Funktion beibehält, sodass jede Anfrage für sich ist. Auf diese Weise zu mischen ist also ein Plus. Wenn Sie Microsoft nur als Validator verwenden, stellen Sie für jede Anforderung eine separate Verbindung mit Google Server her.
quelle
Im Sommer heißt es, dass Microsoft keine Benutzeroberfläche anbietet, das ist nicht mehr korrekt (nicht mehr). Es kann unter http://www.asp.net/ajaxlibrary/cdn.ashx heruntergeladen werden .
quelle
Beachten Sie bei der Verwendung von Google CDN auch, dass manchmal Tippfehler wie ajax.googelapis.com auftreten. Dies könnte möglicherweise zu einem wirklich bösen xss-Angriff (Cross Site Scripting) führen. Ich habe dies tatsächlich getestet, indem ich einen Tippfehler bei googlapis.com registriert habe, und sehr schnell festgestellt, dass ich Anfragen nach Javascript, Karten, CSS usw. bediente.
Ich habe Google eine E-Mail gesendet und sie gebeten, ähnliche CDN-Tippfehler-URLs zu registrieren, habe aber noch keine Antwort erhalten. Dies könnte ein echter Grund sein, sich nicht auf CDNs zu verlassen, da potenziell gefährliche Angreifer auf Tippfehler warten und JQuerys usw. mit einer xss-Nutzlast problemlos zurücksenden können.
Danke dir
quelle
Je nachdem, auf welche Branche die Anwendung abzielt, möchten Sie möglicherweise kein CDN verwenden, das von anderen Organisationen verwaltet wird. Es wirft häufig Probleme in Bezug auf Compliance, Datenschutz und Vertraulichkeit auf.
Wenn Sie beispielsweise Google Analytics in eine sichere Anwendung aufnehmen, sendet der Browser weiterhin die aktuelle URL als "Referer" -Header. Alle Bezeichner, z. B. eine Sitzungs-ID oder ein geheimes Token, werden möglicherweise in ihren Protokollen angezeigt. Beispiel: Wenn eine Client-IP von 192.0.2.5 auf https: //healthsystem.example/condition/impotence verweist , können Sie auf Informationen schließen, die als eher privat angesehen werden.
Andere Fälle enthalten Informationen von Bedeutung, wie z. B. eine Kontonummer, eine Sozialversicherungsnummer oder Sitzungsinformationen in der URL. Diese Art von Daten sollte niemals in der URL enthalten sein, da sie außerhalb der Anwendung verwendet werden können.
Sie können Google, Microsoft oder Yahoo vertrauen, Ihre Nutzer jedoch möglicherweise nicht.
Für Branchen wie Finanzen, Recht und Gesundheitswesen möchten Sie möglicherweise mithilfe eines Anbieters (z. B. Akamai) ein eigenes CDN einrichten, mit dem Sie einen BAA unterzeichnen können.
quelle
Ich würde empfehlen, dass Sie Ihre Nutzung auf den allgemeinen Standort der Benutzer stützen, auf die Sie abzielen.
Wenn Ihre Website für die breite Öffentlichkeit bestimmt ist, ist die Verwendung des CDN von Google eine gute Wahl.
Wenn Ihre Website auch auf China ausgerichtet ist, ist die Verwendung des CDN von Microsoft die bessere Wahl. Ich weiß aus meiner Erfahrung, dass die Server von Google immer wieder von der chinesischen Regierung blockiert wurden und Websites, auf denen sie verwendet werden, nicht mehr geladen werden können.
* Beachten Sie, dass Sie möglicherweise regionenspezifische Websites erstellen können, z. B. cn.mysite.com, um speziell für China zu sorgen. Wenn Sie jedoch wenig Ressourcen und Zeit haben, ist dies eine Überlegung wert.
Vollständige Liste von Microsoft CDN hier. http://www.asp.net/ajaxlibrary/cdn.ashx
Sie wurden inzwischen in ajax.aspnetcdn.com umbenannt , wodurch die Wahrscheinlichkeit einer Blockierung durch Firewall-Regeln verringert wird.
quelle
Ich würde beides benutzen!
Da es das Google Jquery-Hosting schon viel länger gibt, sind die Chancen viel höher, dass die Leute es bereits zwischengespeichert haben als das von Microsoft, also würde ich es zuerst haben.
Persönlich würde ich so etwas verwenden -
(Ich bin mir nicht sicher, ob dies zu 100% funktioniert, aber ich wollte nur die Idee und nicht das Beispiel schreiben. Dies bezieht sich auf die von Google gehostete Jquery und nicht auf die von Microsoft, da ich den Link nicht finden konnte.)
quelle
jQuery
es nur definiert wird, wenn Sie es aktiv geladen haben. In Ihrem Skript wird der erste Zweig immer ausgeführt (es sei denn, Sie haben oben eine andere jQuery-Aufnahme), wodurch das Skript überflüssig wird.