Bir CDN'nin değeri, kullanıcının o CDN'den aynı dosyayı arayan başka bir siteyi daha önce ziyaret etmiş olma olasılığında yatar ve dosyanın boyutuna bağlı olarak giderek daha değerli hale gelir. Durumun böyle olma olasılığı, talep edilen dosyanın her yerde bulunması ve CDN'nin popülerliği ile artar.
Bunu akılda tutarak, popüler bir CDN'den nispeten büyük ve popüler bir dosyayı çekmek mutlak bir anlam ifade eder. jQuery ve daha az bir dereceye kadar jQuery UI, bu faturaya uyuyor.
Bu arada, dosyaları birleştirme çok fazla değişme olasılığı olmayan daha küçük dosyalar için anlamlıdır - yaygın olarak kullanılan eklentileriniz bu faturaya uyacaktır, ancak temel uygulamaya özel kodunuz muhtemelen uymayacaktır: haftadan haftaya değişebilir ve eğer diğer tüm dosyalarınızla yeniden birleştirirseniz, kullanıcıyı her şeyi yeniden indirmeye zorlamanız gerekir.
HTML5 standart metni , bunun için genel bir çözüm sağlama konusunda oldukça başarılıdır:
- Modernizr, kafada yerelden yüklenir: çok küçüktür ve örnekten örneğe oldukça farklıdır, bu nedenle onu bir CDN'den kaynaklamak mantıklı değildir ve kullanıcıyı sizden yüklemek için çok fazla zarar vermez. sunucu. Kafaya yerleştirildi çünkü CSS onu kullanıyor olabilir, bu yüzden vücut oluşturulmadan önce etkilerinin bilinmesini istersiniz. Diğer her şey, daha ağır komut dosyalarınızın yüklenirken ve yürütülürken oluşturmayı engellemesini durdurmak için en alta gider.
- CDN'den jQuery, çünkü hemen hemen herkes kullanıyor ve oldukça ağır. Kullanıcı muhtemelen sitenizi ziyaret etmeden önce bunu önbelleğe almış olacaktır, bu durumda önbellekten anında yükleyecektir.
- Çok fazla değişme ihtimali olmayan tüm küçük 3. taraf bağımlılıklarınız ve kod parçacıkları
plugins.js
, kendi sunucunuzdan yüklenen bir dosyada birleştirilir . Bu, kullanıcı ilk kez ziyaret ettiğinde uzak bir son kullanma tarihi başlığıyla önbelleğe alınır ve sonraki ziyaretlerde önbellekten yüklenir.
- Temel kodunuz
main.js
, uygulama mantığınızın haftadan haftaya veya aydan aya değişebileceğini hesaba katmak için daha yakın bir son kullanma başlığıyla içeri girer . Bu şekilde, bir hatayı düzelttiğinizde veya kullanıcı bundan sonraki iki haftada bir ziyaret ettiğinde yeni bir işlevsellik sunduğunuzda, yukarıdaki tüm içerik önbellekten getirilebilirken bu yeni bir şekilde yüklenebilir.
Diğer büyük kitaplıklarınız için, onlara ayrı ayrı bakmalı ve kendinize jQuery'nin öncülüğünü takip edip etmemeleri, kendi sunucunuzdan ayrı ayrı yüklenmeleri veya birleştirilmeleri gerekip gerekmediğini sormalısınız. Bu kararlara nasıl varabileceğinize bir örnek:
- Angular, inanılmaz derecede popüler ve çok büyük. CDN'den alın.
- Twitter Bootstrap, benzer bir popülerlik düzeyindedir, ancak bileşenlerinin nispeten ince bir seçimine sahipsiniz ve kullanıcı henüz sahip değilse, tüm şeyi indirmeye değmeyebilir. Bunu söyledikten sonra, kodunuzun geri kalanına sığma şekli oldukça içseldir ve tüm siteyi yeniden oluşturmadan onu değiştiremezsiniz - bu nedenle yerel olarak barındırılmak isteyebilirsiniz, ancak dosyalarını sizinkinden ayrı tutun. ana
plugins.js
. Bu şekilde plugins.js
, kullanıcıyı tüm Bootstrap çekirdeğini indirmeye zorlamadan her zaman Bootstrap uzantılarınızı güncelleyebilirsiniz .
Ancak zorunluluk yok - kilometreniz değişebilir.