Jeśli się uwzględni
- Sieci CDN są dobrą rzeczą, ponieważ mogą obsługiwać zasoby bliżej klienta, klient może je buforować i można zmniejszyć obciążenie własnego serwera.
- W najnowszych przeglądarkach ładowanie zasobów z serwerów innych firm nie zmniejsza bezpieczeństwa dzięki Subresource Integrity (SRI) .
- Sieci CDN mogą być niedostępne lub zablokowane w niektórych krajach i nie są dostępne przy programowaniu offline 1 .
Myślę, że korzystanie z sieci CDN jest konieczne, ale trzeba też być przygotowanym na ich niedostępność. Ten post na blogu stanowi miłe wprowadzenie do różnych podejść do zapewniania rezerw. Jeśli spojrzysz na przykład podstawowy , zobaczysz, że zawiera on już sporo kodu z podstawowymi kodami, aby zapewnić awarie tylko dla jQuery i Bootstrap, podczas gdy preferowane rozwiązanie sugeruje użycie Fallback.js , co wydaje się w dużej mierze nieobsługiwane przez ostatni rok . Podobnie, najtrafniejsze pytanie SO w tym temacie dotyczy jedynie zapewnienia rezerwy dla jQuery.
Jednak w większości rzeczywistych projektów spodziewałbym się, że będę mieć 5 lub więcej zasobów js / css, więc uważam, że nie powinieneś powtarzać jakiegoś bałaganu, aby zapewnić awarie wszystkim z nich. Ponadto za każdym razem, gdy dodajesz lub aktualizujesz zasób, musisz to zrobić
- Zaktualizuj łącze CDN
- Zaktualizuj lokalną kopię zapasową przez ręczne pobranie lub zmianę wersji w konfiguracji npm / bower
- Zaktualizuj link do kreacji zastępczej
- Zaktualizuj skrót SRI
Podczas gdy w Idealnym Świecie spodziewam się dodać / zaktualizować zasób w jednym pliku konfiguracyjnym, a wszystkie pozostałe kroki wykonają się automatycznie (a następnie uruchomią testy, aby sprawdzić, czy aktualizacja coś zepsuła).
Czy istnieje już ustalony przepływ pracy, aby to osiągnąć?
A może CDN, a zwłaszcza SRI, są wciąż zbyt nowe?
Czy też większość ludzi po prostu nie chce zapewnić rezerw dla zasobów CDN?
1. Chociaż możesz mieć wersję deweloperską, która nie opiera się na CDN, ale uważam również, że jest to forma rezerwowa, ponieważ należy ją również zachować.
Fallback.js
nieobsługiwany, ponieważ już działa idealnie? Oprogramowanie nie musi być zmieniane co 5 minut, jeśli już działa.