Aktualizacja na podstawie komentarzy:
Krótka wersja: To nie ma większego znaczenia, ale może zależeć od tego, co hostują. Wszystkie hostują różne rzeczy: Google nie hostuje jQuery. Ważne, Microsoft nie hostował jQuery-UI, ponieważ od 2016 roku tak! Microsoft oferuje swoje skrypty, które w innym przypadku byłyby obsługiwane ScriptResource.axd
i łatwiejszą integrację (np. ScriptManager z ASP. Netto 4.0 ).
Ważna uwaga: jeśli budujesz aplikację intranetową, trzymaj się z dala od podejścia CDN. Nie ma znaczenia, kto go hostuje, chyba że masz bardzo przeciążony serwer wewnętrzny, żadna sieć CDN nie zapewni Ci większej wydajności niż lokalna sieć Ethernet 100 Mb / 1 GB. Jeśli używasz sieci CDN do ściśle wewnętrznych aplikacji, obniżasz wydajność . Ustaw poprawnie nagłówki wygasania pamięci podręcznej i zignoruj CDN istniejące w scenariuszu tylko intranetowym.
Szanse na blokadę wydają się być równe, prawie zerowe. Pracowałem nad umowami, w których nie jest to prawdą, ale wydaje się, że jest to wyjątek. Ponadto od czasu opublikowania tej odpowiedzi kontekst, który ją otaczał, zmienił się znacznie, Microsoft CDN poczynił znaczne postępy.
Projekt, nad którym aktualnie pracuję, wykorzystuje obie sieci CDN, które najlepiej działają w naszym rozwiązaniu. Wpływa na to kilka czynników. Użytkownicy ze starszą przeglądarką nadal prawdopodobnie wysyłają 2 równoczesne żądania na domenę zgodnie z zaleceniami specyfikacji HTTP . Nie jest to problem dla każdego, kto uruchamia coś całkiem przyzwoitego, który obsługuje potokowanie (każda bieżąca przeglądarka), ale w oparciu o inny czynnik znosimy również to ograniczenie, przynajmniej w zakresie javascript.
CDN Google, którego używamy do:
CDN Microsoftu, którego używamy do:
Nasz serwer:
- Combined.js? V = 2.2.0.6190 (Major.Minor.Iteration.Changeset)
Ponieważ częścią naszego procesu kompilacji jest łączenie i minimalizowanie wszystkich niestandardowych skryptów javascript, robimy to za pomocą niestandardowego menedżera skryptów, który zawiera wersje wydania lub debugowania (niezminimalizowane) tych skryptów w zależności od kompilacji. Ponieważ Google nie obsługuje pakietu sprawdzania poprawności jQuery, może to być wadą. MVC dołącza / wykorzystuje to w swojej wersji 2.0, więc możesz całkowicie polegać na CDN Microsoftu dla wszystkich twoich potrzeb, a wszystko to automatycznie przez ScriptManager .
Jedynym innym argumentem, który należy podać, są czasy DNS, wiąże się to z kosztem szybkości ładowania strony. Średnio: po prostu dlatego, że jest używane więcej (było już dłużej), ajax.googleapis.com
prawdopodobnie zwróci go DNS wcześniej ajax.microsoft.com
, po prostu dlatego, że lokalny serwer DNS był bardziej skłonny otrzymać żądanie (jest to pierwszy użytkownik w obszarze kary) . Jest to bardzo drobna rzecz i należy ją brać pod uwagę tylko wtedy, gdy wydajność jest niezwykle ważna, aż do milisekundy.
(Tak: zdaję sobie sprawę, że ten punkt jest sprzeczny z tym, że używam obu CDN, ale w naszym przypadku czas DNS jest znacznie przyćmiony przez czas oczekiwania na skrypt javascript / blokowanie)
Na koniec, jeśli nie spojrzałeś na to, jednym z najlepszych dostępnych narzędzi jest Firebug i niektóre wtyczki: Page Speed i YSlow . Jeśli korzystasz z CDN, ale twoje strony za każdym razem żądają obrazów z powodu braku nagłówków pamięci podręcznej, brakuje ci nisko wiszących owoców. Panel Net Firebug może szybko dać ci szybki podział czasu wczytywania strony, a Page Speed / YSlow może zaoferować kilka dobrych wskazówek, które pomogą.
Powinieneś bezwzględnie używać Google CDN do jQuery (i pochodzi od dewelopera zorientowanego na Microsoft).
To proste statystyki. Ci, którzy rozważą użycie MS CDN dla jQuery, zawsze będą mniejszością. Jest zbyt wielu programistów spoza MS, którzy używają jQuery, którzy będą używać Google i nie chcieliby używać Microsoft. Ponieważ jednym z dużych zwycięstw w publicznej sieci CDN jest poprawione buforowanie , podział użycia na wiele sieci CDN zmniejsza potencjał tej korzyści.
źródło
Google prześle Ci wersję jQuery zminimalizowaną własnym oprogramowaniem, ta wersja jest o 6 KB lżejsza niż standardowa zminimalizowana wersja obsługiwana przez MS. Idź do Google.
źródło
Jedną drobną rzeczą do rozważenia jest to, że obie firmy oferują nieco inne „dodatkowe” biblioteki:
W zależności od potrzeb może to mieć znaczenie.
źródło
Należy również zauważyć, że ponieważ ajax.microsoft.com jest subdomeną żądań microsoft.com, wysyłaj wszystkie pliki cookie microsoft.com, zwiększając całkowity czas potrzebny na odzyskanie pliku.
Ponadto ajax.microsoft.com używa domyślnej kompresji IIS7, która jest gorsza od standardowej kompresji używanej przez inne serwery WWW.
http://ajax.microsoft.com/ajax/jquery/jquery-1.4.4.min.js - 33,4 tys.
http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js - 26,5 tys.
Ponadto, jak wspomnieli inni, Google CDN jest znacznie bardziej popularny, co znacznie zwiększa szansę na buforowanie pliku.
Więc zdecydowanie polecam korzystanie z Google.
źródło
Prawdopodobnie nie ma to znaczenia, ale można to sprawdzić za pomocą niektórych testów A / B. Wyślij połowę ruchu do jednej sieci CDN, a połowę do drugiej, i skonfiguruj profilowanie w celu zmierzenia odpowiedzi. Wydaje mi się, że ważniejsza jest możliwość łatwej zmiany na wypadek, gdyby jeden lub drugi miał poważne problemy z niedostępnością.
źródło
Wiem, że trochę się tutaj spóźniam, ale oto kod, którego używałem w produkcji. Nigdy nie miałem z tym problemów, ale przebieg może się różnić. Upewnij się, że przetestujesz go we własnym środowisku.
źródło
Chodzi o statystyki: jquery.com ładuje jQuery z Google. Podobnie Twitter, Stackoverflow i wiele innych. Istnieją więc całkiem duże możliwości, że użytkownik Twojej witryny już go buforuje = brak pobierania .
Zapomnij o walidatorze, przepustowości i szybkości, ponieważ jest to główna zaleta. W przeciwnym razie każda inna opcja CDN będzie działać zasadniczo na tym samym poziomie.
źródło
Właściwie sam byłem tego ciekawy, więc skonfigurowałem stronę testową jsbin, używając każdego z poniższych, a następnie uruchomiłem ją za pomocą narzędzia do porównywania wizualnego webpagetest.org. Testowałem:
Kto był najszybszy: code.jquery.com o 0,1 sekundy w obu testach
Kto był najwolniejszy: ajax.aspnetcdn.com o 0,7 sekundy w pierwszym teście i ajax.googleapis.com o 1 sekundę w drugim teście
Oto pierwszy test (każdy został przetestowany 3 razy):
Wideo: http://www.webpagetest.org/video/view.php?id=121019_16c5e25eff2937f63cc1714ed1eac814794e62b3
Raporty: http://www.webpagetest.org/video/compare.php?tests=121019_D2_KF0,121019_9Q_KF1,121019_WW_KF2,121019_9K_KF3
Oto drugi test (po 3 kolejne):
Wideo: http://www.webpagetest.org/video/view.php?id=121019_a7b351f706cad2c25664fee7ef349371f17c4e74
Raporty: http://www.webpagetest.org/video/compare.php?tests=121019_MP_KJN,121019_S6_KJP,121019_V9_KJQ,121019_VY_KJR
źródło
Jak stwierdził Pingdom :
źródło
Myślę, że to zależy od tego, gdzie jest twoja grupa docelowa. Możesz użyć alertra.com, aby sprawdzić prędkość CDN z wielu lokalizacji na całym świecie.
źródło
Jedna dodatkowa uwaga - jeśli Twoja witryna obsługuje protokół SSL i musisz obsługiwać system Android 2.1 (lub wcześniejszy), certyfikat SSL w wersji HTTPS Microsoft CDN spowoduje awarię tych wersji przeglądarki Android, w związku z tym problemem: http: // code .google.com / p / android / Issues / detail? id = 5001 . To nie jest „wina” Microsoftu, ponieważ certyfikat SSL jest technicznie ważny, a usterka dotyczy implementacji SSL Androida ... ale mimo to spowoduje awarię witryny.
Certyfikat SSL w sieci CDN Google nie jest obojętny na ten konkretny problem (odnoszący się do „alternatywnej nazwy podmiotu certyfikatu”).
Tak więc do obsługi SSL + Android 2.1 użyj sieci CDN Google.
źródło
Moja odpowiedź jest nieco inna niż inne. Jeśli potrzebujesz walidatora jquery, skorzystam z Microsoft, który prawie wszyscy potrzebują, jeśli używasz jquery.
Połączenie http Microsoft CDN to Keep-Alive, co jest dużym plusem, gdy żądasz wielu elementów.
Więc jeśli potrzebujesz sprawdzania poprawności jquery, skorzystaj z Microsoft CDN, nawet jeśli potrzebujesz jquery ui, skorzystaj z Microsoft, ponieważ Google nie utrzymuje aktywności, więc każde żądanie jest samodzielne. więc mieszanie w ten sposób jest plusem. jeśli używasz Microsoft tylko do sprawdzania poprawności, to dla każdego żądania wykonujesz osobne połączenie z serwerem Google.
źródło
W lecie napisano, że Microsoft nie oferuje interfejsu użytkownika, co nie jest poprawne (już więcej). Można go pobrać z witryny http://www.asp.net/ajaxlibrary/cdn.ashx .
źródło
Podczas korzystania z Google CDN należy również wziąć pod uwagę, że czasami ludzie tworzą literówki, takie jak ajax.googelapis.com. Może to potencjalnie stworzyć naprawdę paskudny atak xss (cross site scripting). Naprawdę to przetestowałem, rejestrując literówkę googlapis.com i bardzo szybko znalazłem, że obsługuję żądania javascript, map, css itp.
Wysłałem e-mail do Google i poprosiłem o zarejestrowanie podobnych adresów URL literówek CDN, ale nie otrzymałem odpowiedzi. Może to być prawdziwy powód, aby nie polegać na sieciach CDN, ponieważ potencjalnie niebezpieczni napastnicy oczekują na prośby o literówkę i mogą łatwo obsługiwać zapytania zwrotne itp. Z ładunkiem xss.
Dziękuję Ci
źródło
W zależności od branży, dla której aplikacja jest kierowana, możesz nie chcieć używać sieci CDN zarządzanej przez inne organizacje. Często rodzi to problemy dotyczące zgodności, prywatności i poufności.
Na przykład po włączeniu Google Analytics do bezpiecznej aplikacji przeglądarka nadal wysyła bieżący adres URL jako nagłówek „strony odsyłającej”. Wszelkie identyfikatory, powiedzmy identyfikator sesji lub tajny token mogą pojawić się w ich logach. Na przykład, jeśli adres IP klienta 192.0.2.5 odnosi się do https: //healthsystem.example/condition/impotence , wówczas można wnioskować o informacji, która jest uważana za raczej prywatną.
Inne przypadki zawierają informacje o skutkach, takie jak numer konta, numer ubezpieczenia społecznego lub informacje o sesji w adresie URL. Tego rodzaju dane nigdy nie powinny znajdować się w adresie URL, ponieważ można ich używać poza aplikacją.
Chociaż możesz ufać Google, Microsoft lub Yahoo, Twoi użytkownicy mogą nie.
W branżach takich jak finanse, opieka prawna i opieka zdrowotna możesz założyć własną sieć CDN przy pomocy sprzedawcy (np. Akamai), z którym możesz podpisać umowę licencyjną.
źródło
Radzę, abyś opierał swoje użycie na ogólnej lokalizacji użytkowników, na których jesteś kierowany.
Jeśli Twoja witryna jest skierowana do ogółu społeczeństwa, dobrym wyborem będzie skorzystanie z usługi CDN firmy Google.
Jeśli Twoja witryna jest również skierowana do Chin, lepszym wyborem byłoby skorzystanie z CDN firmy Microsoft. Wiem z mojego doświadczenia, ponieważ serwery Google były blokowane przez chiński rząd, co uniemożliwiało ładowanie stron internetowych, które ich używają.
* Pamiętaj, że możesz stworzyć witryny specyficzne dla regionu, np. Cn.mysite.com, aby zaspokoić potrzeby Chin, ale jeśli masz mało zasobów i czasu, warto to rozważyć.
Pełna lista Microsoft CDN tutaj. http://www.asp.net/ajaxlibrary/cdn.ashx
Od tego czasu zmieniono nazwę na ajax.aspnetcdn.com , co zmniejsza prawdopodobieństwo zablokowania przez reguły zapory.
źródło
Użyłbym obu!
Ponieważ hosting Google Jquery jest już o wiele dłuższy, szanse są znacznie większe, że ludzie będą już go buforować w porównaniu do Microsoft, więc chciałbym mieć go jako pierwszy.
Osobiście użyłbym czegoś takiego -
(Nie jestem pewien, czy to w 100% działa, ale zamierzałem tylko napisać pomysł, a nie przykład - dotyczy to hostowanej przez Google Jquery, a nie Microsoft, ponieważ nie mogłem znaleźć linku)
źródło
jQuery
że nigdy nie zostanie zdefiniowany, dopóki go nie załadujesz. W twoim skrypcie pierwsza gałąź zawsze będzie wykonywana (chyba że masz inne włączenie jQuery powyżej), co czyni skrypt zbędnym.