Mengingat bahwa
- CDN adalah Good Thing karena mereka dapat melayani sumber daya lebih dekat dengan klien, klien dapat men-cache mereka, dan Anda dapat mengurangi beban di server Anda sendiri.
- Di browser terbaru, memuat sumber daya dari server pihak ketiga tidak mengurangi keamanan berkat Subresource Integrity (SRI) .
- CDN mungkin turun atau diblokir di beberapa negara, dan tidak tersedia saat mengembangkan offline 1 .
Saya pikir itu mendesak untuk menggunakan CDN, tetapi juga harus siap untuk mereka agar tidak tersedia. Posting blog ini memberikan pengantar yang bagus untuk berbagai pendekatan untuk menyediakan fallback. Jika Anda melihat contoh Basic , Anda dapat melihat bahwa itu sudah berisi sedikit kode boilerplate untuk menyediakan fallback hanya untuk jQuery dan Bootstrap, sementara solusi yang disarankan menyarankan menggunakan Fallback.js , yang tampaknya sebagian besar tidak terawat selama setahun terakhir. . Demikian pula, pertanyaan SO yang paling relevan untuk topik ini hanya tentang menyediakan fallback untuk jQuery.
Namun, di sebagian besar proyek dunia nyata, saya berharap memiliki 5 atau lebih sumber daya js / css, jadi saya merasa Anda tidak perlu mengulangi beberapa boilerplate yang berantakan untuk memberikan cadangan untuk semuanya. Selain itu, setiap kali Anda menambah atau memperbarui sumber daya, Anda sekarang harus melakukannya
- Perbarui tautan CDN
- Perbarui salinan cadangan lokal dengan mengunduh manual atau mengubah versi dalam konfigurasi npm / bower
- Perbarui tautan ke fallback
- Perbarui hash SRI
Sedangkan di Dunia Ideal , saya akan berharap untuk menambah / memperbarui sumber daya dalam satu file konfigurasi, dan meminta semua langkah lainnya dijalankan secara otomatis (dan kemudian menjalankan tes untuk melihat apakah pembaruan tersebut merusak sesuatu).
Apakah sudah ada alur kerja yang mapan untuk mencapai ini?
Atau apakah CDN, dan terutama SRI, masih terlalu baru?
Atau apakah kebanyakan orang tidak peduli untuk memberikan cadangan untuk sumber daya CDN?
1. Meskipun Anda bisa memiliki pengembangan dev yang tidak bergantung pada CDN, tetapi saya juga menganggap itu sebagai bentuk mundur, karena juga perlu dipertahankan.
Fallback.js
terawat karena sudah berfungsi dengan baik? Perangkat lunak tidak harus diubah setiap 5 menit jika sudah berfungsi.