Dado que
- Las CDN son buenas porque pueden servir recursos más cerca del cliente, el cliente puede almacenarlos en caché y puede reducir la carga en su propio servidor.
- En los navegadores recientes, cargar recursos de servidores de terceros no disminuye la seguridad gracias a Subresource Integrity (SRI) .
- Las CDN pueden estar inactivas o bloqueadas en algunos países, y no están disponibles cuando se desarrolla fuera de línea 1 .
Creo que es convincente usar CDN, pero también estar preparado para que no estén disponibles. Esta publicación de blog ofrece una buena introducción a los diferentes enfoques para proporcionar retrocesos. Si observa el ejemplo básico , puede ver que ya contiene un poco de código repetitivo para proporcionar retrocesos solo para jQuery y Bootstrap, mientras que la solución preferida sugiere usar Fallback.js , que parece estar en gran medida sin mantenimiento durante el año pasado . Del mismo modo, la pregunta SO más relevante para el tema se trata solo de proporcionar un respaldo para jQuery.
Sin embargo, en la mayoría de los proyectos del mundo real, esperaría tener 5 o más recursos js / css, por lo que siento que no debería tener que repetir algunas repeticiones complicadas para proporcionar retrocesos para todos ellos. Además, cada vez que agrega o actualiza un recurso, ahora tiene que
- Actualice el enlace de CDN
- Actualice la copia de respaldo local mediante descarga manual o cambiando la versión en npm / bower config
- Actualice el enlace a la reserva
- Actualizar el hash SRI
Mientras que en el mundo ideal , esperaría agregar / actualizar el recurso en un archivo de configuración, y hacer que todos los demás pasos se ejecuten automáticamente (y luego ejecutar pruebas para ver si la actualización rompió algo).
¿Existe ya un flujo de trabajo establecido para lograr esto?
¿O los CDN, y especialmente el SRI, son todavía demasiado recientes?
¿O a la mayoría de las personas simplemente no les importa proporcionar retrocesos para los recursos de CDN?
1. Aunque podría tener una compilación de desarrollo que no dependa de CDN, también considero que es una forma de respaldo, ya que también debe mantenerse.
Fallback.js
sin mantenimiento porque ya funciona perfectamente? El software no tiene que cambiarse cada 5 minutos si ya funciona.