Dato che
- I CDN sono una buona cosa perché possono servire le risorse più vicine al cliente, il client può memorizzarle nella cache e puoi ridurre il carico sul tuo server.
- Nei recenti browser, il caricamento di risorse da server di terze parti non diminuisce la sicurezza grazie a SRI (Subresource Integrity) .
- I CDN potrebbero essere bloccati o bloccati in alcuni Paesi e non sono disponibili quando si sviluppa offline 1 .
Penso che sia interessante usare i CDN, ma anche essere pronti a renderli non disponibili. Questo post del blog offre una buona introduzione ai diversi approcci per fornendo fallbacks. Se guardi all'esempio Basic , puoi vedere che contiene già un bel po 'di codice per fornire fallback solo per jQuery e Bootstrap, mentre la soluzione preferita suggerisce di usare Fallback.js , che sembra essere in gran parte non mantenuto per l'anno passato. Allo stesso modo, il più rilevante QUINTA domanda per l'argomento serve solo a fornire un fallback per jQuery.
Tuttavia, nella maggior parte dei progetti del mondo reale, mi aspetterei di avere 5 o più risorse js / css, quindi mi sento come se non dovessi dover ripetere qualche scomodo piano per fornire fallback per tutti loro. Inoltre, ogni volta che aggiungi o aggiorni una risorsa, ora devi
- Aggiorna il link CDN
- Aggiorna la copia di riserva locale mediante download manuale o modifica della versione in npm / bower config
- Aggiorna il link al fallback
- Aggiorna l'hash SRI
Mentre nel Ideal World , mi aspetto di aggiungere / aggiornare la risorsa in un unico file di configurazione e di eseguire tutti gli altri passaggi automaticamente (e quindi eseguire test per vedere se l'aggiornamento ha rotto qualcosa ).
Esiste già un flusso di lavoro consolidato per raggiungere questo obiettivo?
O i CDN, e in particolare l'SRI, sono ancora troppo recenti?
O la maggior parte delle persone semplicemente non si cura di fornire fallback per le risorse CDN?
1. Anche se potresti avere una build di sviluppo che non si basa su CDN, ma considero anche una forma di fallback, dato che deve anche essere mantenuta.