Barındırılan komut dosyalarının artıları ve eksileri [kapalı]


12

Bazı geliştiricilerin kütüphanelerini bağlamak için barındırılan komut dosyaları kullandıklarını gördüm.

cdn.jquerytools.org bir örnektir.

Ayrıca, barındırılan bir komut dosyası bağlantısının ele geçirildiğinden şikayetçi olduklarını gördüm.

Barındırılan komut dosyalarını gerçekte kullanmak ne kadar güvenli? Komut dosyaları otomatik olarak güncelleniyor mu? Örneğin, jQuery 5 6'ya giderse otomatik olarak sürüm 6'yı alır mıyım veya bağlantımı güncellemem gerekir mi?

Ayrıca Google'ın barındırma için bu komut dosyalarının geniş bir setine sahip olduğunu da görüyorum.

Artıları ve eksileri nelerdir?

Yanıtlar:


11

Artıları

  • Komut dosyalarınız daha hızlı yüklenir . Tek bir etki alanından yüklenmesi gereken çok sayıda kaynağınız varsa, tarayıcınız genellikle aynı ana bilgisayara yalnızca bir avuç paralel isteğiniz olmasını sağlamak için tıkanır. Dolayısıyla, on altı ayrı komut dosyası, birden çok resim ve birden çok CSS dokümanı yüklüyorsanız, her bir kaynak yüklenmek için sıra beklerken kuyruk olacaktır. (Kesinlikle CSS ve Javascript dosyalarınızı birleştirmeye bakın - sadece iki komut dosyası kaynağını yüklemek çok daha hızlı olacaktır).
  • Bununla birlikte, bu kaynakları ayrı bir etki alanına döndürürseniz, tarayıcınızın o sunucuya ek bağlantılar açmakta bir sorun yaşamazsınız, bu da aynı anda daha fazla kaynağın yüklenmesiyle daha hızlı sayfa yürütülmesine neden olur. Ayrıca, farklı bir sunucunun sayfanızın yüklenmesinin bir kısmını işlemesine izin veriyorsunuz, bu da muhtemelen birkaç komut dosyası yürütme isteği üzerinde çalışan sunucunuz için iyidir.
  • Ayrıca, bu CDN sunucuları (içerik dağıtım ağları) CDN olarak çalışacak şekilde yapılandırılmıştır . Tipik olarak çerezsizdirler (daha küçük paket boyutları için) ve tamamen kaynak sunma ve yaygın olarak kullanılan kaynakları önbelleğe alma ile ilgilenen ve günlük standart kaldırma ile çok fazla değil, bataklık standardı gibi bir şeyle son derece hafif bir sunucu ile kurulurlar. Apache sunucusu çalışacaktır.
  • Google veya Akami gibi bir CDN kullanmanın başka faydaları da vardır - Google'ın özellikle tüm dünyada sunucuları vardır ve yönlendirme sistemleri, bir kaynak talebini mevcut en yakın coğrafi kopyayla eşleştirmek için yeterince akıllıdır. Sunucunuz Rusya'da Vladimir'e jQuery.js'yi sunmaya çalışıyor olabilir.
  • Ayrıca, pek çok web sitesi zaten bu CDN'leri kullandığından, hizmet verdiğiniz kaynağın kullanıcı tarafından önceden önbelleğe alınmış olması olasılığı yüksektir. Sunucunuzdan jQuery.js ve Google sunucusundan jQuery.js aynı dosya olarak değerlendirilmez, tam olarak aynı olmalarına bakılmaksızın - Google'dan yüklerseniz, önceki siteden önbelleğe alınmış kopyayı kullanabilecektir. kullanıcı ziyaret etti.
  • Özellikle Javascript çerçeveleri gibi kod kaynakları için dosyaların kendileri değişmez. Yeni bir sürüm çıkarsa Google, CDN'nin normal şekilde çalışmaya devam etmesi ve kötü istekler sunmaması için eski sürümü (hataları ne kadar önemsiz olursa olsun) özellikle barındırmaya devam eder. Bu nedenle, herhangi bir CDN dosyası uygun sürüm numarasıyla tam olarak eklenir.

Eksileri

  1. CDN'nizin bulunmaması olasılığı vardır. Ancak, muhtemelen, sitenizin kapanmasından daha düşüktür. Google ve Akami gibi daha büyük CDN'lerde birden fazla başarısızlık katmanı vardır.
  2. Kendi sunucunuzdan yüklemek için yalnızca bir veya iki kaynağınız varsa, yeni bir bağlantı oluşturmak buna değmeyebilir.
  3. Sunulan dosya üzerinde herhangi bir denetiminiz yoktur, bu nedenle kendi CDN'nizi ödemiyorsanız, jQuery özel sürümünüzü veya yüklemeye çalıştığınız başka bir şeyi kullanmak dışarıdadır.

Güvenlik

Bu El Stack yazı artı konunun Google'ın iyi bir miktar tavsiye ederim . Her CDN farklı olacak, ancak kısaca bunun küçük bir endişe olacağını düşünüyorum.


1

Kimsenin bahsetmediği bir şey Google için başka bir izleme seçeneğidir. Tüm bu hizmetleri ücretsiz olarak sunmuyorlar. AdSense ve Analytics oldukça yeterlidir ve en azından bunlar filtrelenebilir. Bu, kitabımda büyük bir aleyhte.


0

Artıları:

  • Dosyaları sunmayla ilgili bant genişliği için ödeme yapmanız gerekmez ve genellikle

Eksileri:

  • Kullandığınız barındırma sağlayıcısının kullanımına tabisiniz (herhangi bir nedenden dolayı aşağı inerse, sizin de aşağı).
  • Barındırma sağlayıcılarının sahip olduğu komut dosyalarının sürümlerine zorladınız

Bir CDN kullanmanın başka faydaları da vardır, ancak doğrudan bir 3. komut dosyası barındırma hizmeti kullanmakla ilgili değildir.


0

En iyi uygulamalar söz konusu olduğunda, Jarrod'un bahsettiği gibi tek bir etki alanına giden sınırlı sayıda bağlantı nedeniyle ve çok ileri bir gelecek ayarlamak yanıtta sürenin sona ermesi nedeniyle sayfa yüklemeyi optimize etmek için ortak yaklaşım, tüm JS kaynaklarınızı bir araya getirmektir.

Jarrod'un da belirttiği gibi, CDN'lerin böyle bir karışıma, özellikle popüler olanlara getirdiği şey, kullanıcının daha önce URL'ye erişmiş olması ve JS kaynağını, bağlantı kurmaya bile gerek kalmadan derhal önbelleğinden alabilmesidir.

Bu amaçla, hepimiz CDN'leri kullandıysak ve en iyi uygulamaları kullandıysak, kullanıcıyı URL'lerimize başlangıçta eriştiklerinde ve sayfalarını daha hızlı yüklemelerine izin verdiğinde ek bir ~ 10-50KB almaktan kurtarabiliriz.

Ben ediyorum şiddetle tavsiye iki nedenden dolayı CDN kullanımı: Jarrod söz eksileri, orada gerçek, ama tamamen önemsizdir ve sizin zaten tek bir belgeye Kaynaklarınızı donatılacak, sen, diyelim ki, statik jQuery kısmını almak için herkesi zorlarsınız birlikte verilen kaynaklardan birini her güncellediğinizde belge (~ 33 KB).

Kulağa ne kadar önemli geldiğini bilmiyorum, ancak büyük kullanıcı tabanları ile bu önemli bir bant genişliği kesilmesine ve önemli tasarruflara yol açıyor, bunun botu porno akışı ve bira satın alma gibi daha acil konulara yönlendirebiliriz.


-2

Yapma

Şahsen, üçüncü taraflarca barındırılan komut dosyalarına güvenmem. Diğer insanların senaryolarından yararlanırsanız onların merhametindesiniz. Dikkate alınması gereken birkaç şey var:

  1. Siteleri kapanırsa sayfanız zaman aşımına uğrayabilir veya hata verebilir.
  2. Eğer işten çıkıp barındırma özelliğini kapatırlarsa, tüm bu işlevleri kaybettiniz
  3. Eğer saldırıya uğrarlarsa, saldırıya uğrayabilirsiniz.
  4. Siteler arası komut dosyası oluşturma, SSL sertifikalarıyla zarar verebilir
  5. Sayfa yükleme süreleri önemli ölçüde artabilir
  6. Arayüz değişirse, tüm işlev çağrılarını değiştirmeniz gerekir

Kodu kendi sitenizde barındırmak daha güvenlidir, bana güvenin. Yalnızca bir kez yanmanız ve oluşturduğunuz ve barındırdığınız 250 web sitesinin komik davranmaya başlaması gerekir, çünkü çalışmayı bırakan üçüncü bir bölüm barındırılan komut dosyasına güvendiniz.


1
Büyük ve güvenilir bir CDN kullanırsanız, endişelerinizin çoğuyla karşılaşmayacağınızı düşünüyorum. 1.) Google'ın CDN'sinin çok iyi çalışma süresine sahip olmasını bekliyorum , 2.) Google'ın yakında işten çıkacağını görmüyorum, 3.) Makul, ama yine çok hızlı yama / sabitleme bekliyorum, 4 .) Herhangi bir sorun görmedim, 5.) Saygın bir CDN ise, sayfa yüklemeleri aslında kendinize hizmet edebileceğinizden daha hızlı olmalıdır (ardışık düzen, çok siteli önbellekleme ve cookieless alanlar arasında), 6.) jQuery gibi çekirdek sürümlü kütüphaneler bir sorun olmamalı.
scunliffe

1
... ayrıca, uzak CDN'lerin başarısız olması durumunda kendi yedek komut dosyalarınızı uygulamayı durduracak hiçbir şey yoktur.
scunliffe

Bu nedenlerden hiçbiri listelenen Cape Cod Gunny, Google gibi modern CDN'ler veya diğer birçok büyük CDN sağlayıcısı için geçerli endişeler değildir.
Jarrod Nettles
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.