Czy jest jakaś PRAWDZIWA korzyść z używania biblioteki hostowanej przez Google jQuery? A może po prostu pobierzemy go na nasz serwer?
Jaka jest Twoja opinia na ten temat?
Komentarze
- Prosta wyszukiwarka Google wyszukiwanie przyniosłoby odpowiedź …
Odpowiedź
Korzystanie z zewnętrznej sieci CDN ma dwie główne zalety takie jak Google do hostowania jQuery:
- To szybciej. Z pewnością będzie być szybszy niż Twoja witryna i prawdopodobnie szybszy niż jakakolwiek skonfigurowana samodzielnie sieć CDN.
- Może być już w pamięci podręcznej . Wiele witryn odwołuje się do jQuery również w CDN Google, więc jeśli odwiedzili inną witrynę przed Twoją, nie będą nawet musieli jej pobierać.
Potencjał wady:
- Domena może zostać zablokowana (jest to dość powszechne w miejscach takich jak Chiny ). Możesz rozwiązać ten problem, stosując lokalną rezerwę ( zobacz on w jaki sposób ).
- fragmentacja numerów wersji jest dość duża, więc osoby odwiedzające Twoją witrynę mogą mieć w pamięci podręcznej wiele różnych wersji, ale nie tę, do której się odwołujesz ( zobacz tutaj niektóre najnowsze statystyki ). Jest to jednak problem tylko przy pierwszym wczytywaniu strony.
Komentarze
- Czy możesz zamieścić informacje o tym, jak skonfigurować lokalne rozwiązanie zastępcze?
- Jak już wcześniej zauważył Zistolen, kolejną korzyścią jest to, że będzie pobierać inne zasoby równolegle do Twoich witryn internetowych. Możesz dodać to również do tej świetnej odpowiedzi.
- To ' jest trochę mylące. Przeglądarki pobierają zasoby równolegle niezależnie od tego, gdzie są hostowane, ale istnieje ograniczenie liczby rzeczy, które ' pobierają z tego samego hosta naraz.
- Pominąłem to, szczerze mówiąc, ' nie ma ani tu, ani tam – plik można pobrać równolegle, ale ' jest również dodatkowym Wyszukiwanie DNS. Poza tym, każda różnica w czasie którejkolwiek z tych marek i tak jest pomijalna.
- W porządku. Ale czy w przypadku szybkich połączeń nie może to skutkować szybszym całkowitym czasem ładowania, skoro można użyć większej liczby ” potoku „?
Odpowiedź
Kolejny minus:
Korzystanie z CDN umożliwia operatorowi CDN śledzenie odwiedzających witryny. To dlatego nie kosztują.
Komentarze
- Śledzenie jest pewne, ale nie odwiedzających: oba jquery ' własne i Google ' sieci CDN jquery są hostowane w domenach, które nie ' nie ustawiają ani nie używają plików cookie (to jest prawdopodobnie także optymalizacja wydajności), aw żądaniu ' nie ma żadnych informacji umożliwiających identyfikację. Dostawca CDN może uzyskać informacje o adresach IP i niektórych statystykach dotyczących ciągów znaków agenta użytkownika i elementów odsyłających. Jest to prawdopodobnie cenne, ale samo w sobie ' nie stanowi dużego zagrożenia dla prywatności (jeśli te rekordy byłyby skorelowane z inną bazą danych – powiedzmy, że spersonalizowane reklamy wyświetlane w podobnym czasie – to być może sposób śledzenia).
- Myślę, że można przyjąć za pewnik (w przypadku Google), że dane są skorelowane z innymi bazami danych, ponieważ prawie wszyscy używają google do wyszukiwania przez cały czas. To samo z czcionkami Google: ostatnio próbowałem samodzielnie hostować czcionki na serwerze, ale okazało się, że jest to bardzo trudne. Google nie zabrania tego (Open Source), ale nie ' nie dostarcza plików w formie gotowej do użycia: możesz je skompilować samodzielnie (ale jest no makefile) lub możesz fałszować żądania do serwerów, które są używane do ich normalnego dostarczania. Oba są niewykonalne dla osoby nie znającej się na technice.
- Być może. Nie ' nie mam żadnych informacji wewnętrznych, więc ' trudno powiedzieć na pewno. ' Jestem pewien, że ' będę zawierał błędy i znaczące luki, jednak: większość miejsc, w których korzystam z internetu, ma NAT, a kilka ma całkiem sporo użytkowników z podobnymi maszynami (prawdopodobnie identycznymi ciągami znaków UA) – ' nie będzie wiadomo, które żądanie pochodzi od kogo. I oczywiście w przypadku przycisków adsense i udostępniania społecznościowego, prawie zawsze mają one bardziej niezawodne środki, więc mogę sobie wyobrazić, że ' nie zawracają sobie głowy. Jeśli chodzi o czcionki – ' pobrałem je kilka razy, więc nie ' nie rozumiem, co masz na myśli mówiąc, że jest to trudne?
- Żeby było jasne: ja ' w pewnym sensie zakładam, że większość odwiedzin witryny może i będzie śledzona przez dużych zbieraczy statystyk dzięki przyciski udostępniania społecznościowego (dość wszechobecne) i reklamy, które są prawie wszędzie. Zastanawiam się więc tylko, jak wartościowe mogą być mylące informacje z żądań js, które są mocno buforowane w pamięci podręcznej – ' stawiam, niezbyt, więc zakładam, że nie ' nie kłopocz się próbą osobistej identyfikacji ludzi za pomocą JS obsługiwanego przez CDN.
- Nie jest tak buforowany, jak mogłoby się wydawać – Podczas osadzania czcionek w sposób preferowany przez Google, wstawiając link CSS do fonts.googleapis. pl, każde wyświetlenie strony otwiera połączenie z Google (możesz je zobaczyć w Firebug). Nie ' nie ma znaczenia, czy jest buforowany, czy nie. Jeśli chodzi o pobieranie: czy możesz wskazać mi miejsce, w którym mogę pobrać czcionki w wysokiej jakości formatach eot, woff, ttf i svg (te same wersje dostarczane przez Google, bez zewnętrznych konwerterów)?
Odpowiedź
Używanie CDN do dzielenia zależności na wiele serwerów, takich jak ten, w istocie reprezentuje kompromis między przepustowością a opóźnieniem, zakładając, że tylko ci zależy o wydajności.
Nawiasem mówiąc, zakładam, że alternatywą nie jest po prostu hostowanie go lokalnie, ale łączenie go z innym lokalnym żądaniem – zwykle nie ma dobrego powodu, aby nie dokonywać konkatenacji, kiedy jest to możliwe.
Jeśli przepustowość jest nieskończona, najlepiej będzie, jeśli NIE dzielisz się na fragmenty, ponieważ będziesz działać tak wolno, jak najwolniejsza usługa – ponieważ opóźnienia nie są w pełni przewidywalne, przy wystarczającej liczbie usług, nawet jeśli są szybkie, wystarczy trochę pecha, aby spowodować powolne ładowanie strony.
Jeśli opóźnienie wynosi 0, rozłożenie obciążenia na wiele serwerów może poprawić przepustowość, wykorzystując wiele usług rs (nie jest to zbyt pomocne, ponieważ prawdopodobnie ograniczenia przepustowości są blisko klientów, a nie serwerów), ale co ważniejsze, może nieznacznie zmniejszyć ilość przesyłanych danych, zwiększając efektywność buforowania.
To zależy od Twój scenariusz, ale generalnie spodziewałbym się, że opóźnienie będzie większym problemem niż przepustowość, chyba że twoje skrypty są niesamowicie ogromne (a jquery nie jest). W tym momencie hostowanie jquery jako części połączonego pliku lokalnego jest zwykle szybsze.
Powody, dla których nie należy hostować lokalnie, to np. Fakt, że płacisz za przepustowość lub hosting na jakimś wolnym serwerze ( Twoje połączenie z klientem jest z wąskim gardłem po Twojej stronie, a nie po stronie klienta, lub wiesz, że Twoi klienci będą mieli naprawdę niską przepustowość (na przykład low-end DSL lub modemy – telefony komórkowe mają zwykle większe problemy z opóźnieniami niż problemy z przepustowością) lub twoi klienci płacą za przepustowość (np. telefon komórkowy), a skrypty są tak zauważalną częścią, że drobne wygrane w pamięci podręcznej mają znaczenie (mało prawdopodobne).
W każdym razie: o wiele bardziej istotne będzie to, czy Ty ” najpierw omówiliśmy podstawy; odpowiednie nagłówki buforowania, konkatenacja, minifikacja i gzipowanie (najlepiej z wysokim współczynnikiem kompresji). I tu jest sedno: jeśli NIE „T tego zrobisz, to przynajmniej CDN to zrobi, więc” wygra …
TL; DR: Jeśli masz konkatenację + minifikację + gzipping + caching, to lokalne serwowanie małych skryptów jest szybsze niż z sieci CDN pomimo lepszej wydajności CDN – ale tylko wtedy, gdy odrobiłeś pracę domową, prawdopodobnie nie za pierwszym wczytywania strony i zdecydowanie istnieją wyjątki od tej reguły.
Komentarze
- Nawiasem mówiąc, istnieje kilka wycinków bajtów, które można wygrać za pomocą jednego żądania: same nagłówki zajmują prawie 1 kB, co przy ładunku 28 kB nie jest ' t niczym. gzip działa lepiej z większym kontekstem, co oszczędza kolejne 0,5 kB. Narzuty TCP, DNS i HTTPS mogą wszystko łatwo dodać KB tu lub tam, a co gorsza, RTT ' s. To ' dlaczego w przypadku małych plików, takich jak ten, CDN jest nie jak tak szybko, jak mogłoby się wydawać.
Odpowiedz
Korzystanie z hostowanej biblioteki jQuery firmy Google umożliwia Twojej stronie ładowany szybciej. Rzeczywiście, biblioteka jest ładowana w tym samym czasie, a nie później.
Komentarze
- Ale jak to wpływa na ładowanie strony?
- Biblioteki lokalne są również ładowane podczas ładowania strony – w obu przypadkach pobieranie zasobu rozpoczyna się, gdy (nowoczesna) przeglądarka widzi fragment kodu, który uruchamia pobieranie, co zwykle ma miejsce przed pobraniem całego dokumentu . Zobacz ten zrzut ekranu Firebuga jako przykład