Udostępnianie bibliotek javascript z sieci CDN zamiast z własnego serwera ma ogromne zalety. Mniej pracy dla twojego serwera, możliwość, że CDN ma kopię bliżej użytkownika niż twój serwer, ale co najważniejsze, duża szansa, że przeglądarka użytkownika już ma ją w pamięci podręcznej z tego adresu URL. Ta ostatnia oznacza mniej pracy dla wszystkich, więc jest to oczywista korzyść dla wszystkich i jest bardziej prawdopodobne, im częściej my (programiści) polegamy na sieciach CDN, które obsługują nasz javascript.
Ale popularne sieci CDN javascript (Google, Microsoft, inne?) Obsługują tylko niewielką liczbę plików. Dla innych mamy do wyboru hostowanie ich samodzielnie lub ... używanie serwera kontroli źródła jako swego rodzaju CDN. Jest mało prawdopodobne, że Github lub podobny ma geograficznie rozproszoną pamięć podręczną plików zoptymalizowaną pod kątem globalnego udostępniania. Ale jeśli jest to powszechna praktyka, istnieje spora szansa, że przeglądarka użytkownika będzie ją buforować. Argument przeniesienia pracy z naszych serwerów na github jest ważny tylko wtedy, gdy Github dobrowolnie zgłosił się do tego.
Czy jest to więc powszechna praktyka? Czy powinniśmy się do tego zachęcać? Czy Github ma coś przeciwko? Czy mają określone oficjalne zasady?
źródło
Odpowiedzi:
Nie należy tego robić w przypadku plików JavaScript, jeśli zależy Ci na wydajności lub zgodności z IE9.
GitHub nie obsługuje swoich „surowych” plików z nagłówkiem wygasającym w dalekiej przyszłości. Bez możliwości buforowania między witrynami tracisz największą korzyść z używania publicznej sieci CDN do hostowania JavaScript. W rzeczywistości używanie GitHub jako CDN będzie wolniejsze niż po prostu hostowanie plików na własnym serwerze po pierwszym żądaniu pliku przez każdego użytkownika (zakładając, że poprawnie skonfigurujesz buforowanie na serwerze).
Innym problemem jest to, że GitHub nie obsługuje "surowych" plików z nagłówkiem typu zawartości, który pasuje do rzeczywistego typu MIME pliku. W IE9 (i być może w innych przeglądarkach / serwerach proxy / zaporach ogniowych / itp.) Pliki JavaScript, które nie są obsługiwane z odpowiednim typem zawartości, są domyślnie blokowane. Możesz to zobaczyć w akcji na stronie demonstracyjnej BlockUI, na przykład:
źródło
Łączenie z „surowymi” plikami GitHub wiąże się z pewnymi problemami, które zostały opisane w odpowiedzi Dave'a Warda .
Proponuję zajrzeć do GitHub Pages jako opcji.
Przeczytaj ten artykuł:
GitHub jako CDN. Buforuj swoje skrypty JavaScript, arkusze stylów i zasoby internetowe za pomocą GitHub Pages.
źródło
Pytano o to niedawno na forach pomocy technicznej github , a oficjalna odpowiedź brzmiała, że wszystko jest w porządku.
Powiedziawszy to, zgadzam się z innymi odpowiedziami: github nigdy tak naprawdę nie miał być CDN, podczas gdy Google i Microsoft mają do tego specjalną infrastrukturę.
źródło
Jest dobry do prototypowania / rzeczy osobistych, ale do produkcji przyjrzałbym się:
http://www.cdnjs.com/
http://cachedcommons.org/- już niedostępnyźródło
Robię to od miesięcy, najpierw miałem pewne obawy, ale jest super, jeśli nie masz problemów z publicznymi dostępnymi plikami, użyj zminimalizowanych wersji, jeśli ci zależy.
Ale nadal - Google i MS rządzą przestrzenią dla szablonów jQuery i jQuery - więc używam ich do tego.
źródło