Google jQuery tarafından barındırılan kitaplık - iyi mi?


14

Google jQuery tarafından barındırılan kitaplığı kullanmanın GERÇEK dokunmatik bir faydası var mı? Yoksa sadece sunucumuza mı indirelim?

Bu konudaki görüşleriniz neler?


1
Basit bir google arama cevap verecek ...
Francisco Presencia

Yanıtlar:


18

JQuery'yi barındırmak için Google gibi harici bir CDN kullanmanın iki önemli avantajı vardır:

  1. O daha hızlı. Kesinlikle sitenizden daha hızlı ve muhtemelen kendi kurduğunuz herhangi bir CDN'den daha hızlı olacaktır.
  2. Zaten önbelleğe alınmış olabilir . Birçok site Google'ın CDN'sinde de jQuery'ye başvurur, bu nedenle sizinkinden önce başka bir siteyi ziyaret ettiyse, indirmeleri bile gerekmez.

Potansiyel olumsuz yanları:

  1. Alan adı engellenebilir (Çin gibi yerlerde oldukça yaygındır). Bunu yerel bir geri dönüşle çözebilirsiniz ( nasıl yapılacağı için buraya bakın ).
  2. Parçalanma sitenize ziyaretçilerin başvurulan bir (birçok farklı versiyonları önbelleğe yok, ama bu yüzden sürüm numaralarının oldukça yüksektir bazı yeni istatistikleri için buraya bakınız ). Bu sadece ilk sayfa yüklemesinde bir sorundur.

3
Yerel yedeklemeyi nasıl ayarlayacağınıza ilişkin bir referans gönderebilir misiniz?
Stephen Ostermiller

1
Zistolen'in daha önce belirttiği gibi, bir başka yararı da web sitenize diğer varlıklara paralel olarak indirmesidir. Bunu, aksi takdirde bu harika yanıta da eklemek isteyebilirsiniz.
nathangiesbrecht

Bu biraz yanıltıcı. Tarayıcılar, nerede barındırıldıklarına bakılmaksızın öğeleri paralel olarak indirir, ancak aynı ana bilgisayardan aynı anda indirecekleri sayısında bir sınırlama vardır.
Tim Çeşmesi

Dürüst olmak gerekirse, ne burada ne de orada olduğunu atladım - dosya paralel olarak indirilebilir, ancak aynı zamanda ek bir DNS araması. Ayrıca, bunlardan herhangi birinde zaman farkı ne olursa olsun ihmal edilebilir.
DisgruntledGoat

Yeterince adil. Ancak hızlı bağlantılarda, daha fazla "boru" kullanılabileceğinden daha hızlı bir toplam yükleme süresi ile sonuçlanamaz mı?
nathangiesbrecht

11

Başka bir dezavantaj:

Bir CDN kullanmak, CDN operatörünün site ziyaretçilerini izlemesini sağlar. Bu yüzden paraya mal olmazlar.


Emin olun, ancak ziyaretçileri değil: hem jquery'nin hem de google'ın jquery CDN'sini çerez ayarlamayan veya kullanmayan alan adlarında barındırılıyor (bu muhtemelen bir performans optimizasyonu) ve istekte gerçekten tanımlanabilir bir bilgi yok. CDN sağlayıcısı, IP adresleri ve kullanıcı aracısı dizeleri ve yönlendiricileri hakkındaki bazı istatistikler hakkında fikir edinebilir. Bu muhtemelen değerlidir, ancak tek başına büyük bir gizlilik riski değildir (bu kayıtlar başka bir veritabanı ile ilişkilendirilmişse - benzer zamanlarda sunulan kişiselleştirilmiş reklamlar diyelim - o zaman belki de bir izleme aracı olabilir).
Eamon Nerbonne

Neredeyse herkes her zaman arama yapmak için google kullandığından, (google durumunda) verilerin diğer veritabanlarıyla ilişkili olduğu kabul edilebilir. Google fontları ile aynı şey: Son zamanlarda fontları bir sunucuda kendi kendine barındırmaya çalıştım, ancak bunu yapmanın çok zor olduğunu öğrendim. Google bunu yasaklamıyor (Açık Kaynak), ancak dosyaları kullanıma hazır bir şekilde sunmuyorlar: Bunları kendiniz derleyebilirsiniz (ancak bir makefile yoktur) veya normal olarak dağıtmak için kullanılan sunucular. Her ikisi de teknisyen olmayanlar için yapılamaz.
Jost

Belki. Herhangi bir iç bilgim yok, bu yüzden kesin olarak söylemek zor. Ancak, buggy olacağı ve önemli boşlukları olacağından eminim: İnterneti kullandığım çoğu yer DOĞALDIR ve birkaçının benzer makineleri (muhtemelen aynı UA dizeleri) olan birkaç kullanıcısı vardır - hangisini bilmek imkansızdır istek kimden geliyor. Ve elbette adsense ve sosyal paylaşım düğmeleriyle, neredeyse her zaman daha güvenilir bir araçlara sahip olabilirler, böylece rahatsız etmediklerini hayal edebiliyorum. Yazı tiplerine gelince - Birkaç kez indirdim, bu yüzden bu zor olmaktan ne demek istediğinizi tam olarak anlamıyorum?
Eamon Nerbonne

Açık olmak gerekirse: Yaptığınız web sitesi ziyaretlerinin çoğunun, hemen hemen her yerde bulunan sosyal paylaşım düğmeleri (oldukça yaygın) ve reklamlar sayesinde büyük stat koleksiyoncuları tarafından izlenebileceğini ve izleneceğini varsayıyorum. Bu yüzden sadece ağır önbelleğe alınmış js isteklerinden muhtemelen yanıltıcı bilgi ne kadar merak ediyorum - Bahse girerim, çok değil, bu yüzden CDN tarafından hizmet verilen JS kullanan kişileri kişisel olarak tanımlamak için uğraşmadıklarını varsayıyorum.
Eamon Nerbonne

Düşündüğü gibi önbelleğe alınmadı - fonts.googleapis.com'a bir CSS bağlantısı ekleyerek google'ın tercih ettiği yolu kullanarak fontları gömerken, her tek sayfa görünümü google'a bir bağlantı açar (bunları Firebug'da görebilirsiniz). Önbelleğe alınıp alınmadığı önemli değildir. İndirmeye gelince: Beni yazı tiplerini yüksek kaliteli eot, woff, ttf ve svg formatında indirebileceğim bir yere işaret edebilir misiniz (aynı sürümler google'ın sağladığı, harici dönüştürücüler yok)?
Jost

3

Bağımlılıklarınızı bu gibi birçok sunucuda parçalamak için CDN (ler) kullanmak, yalnızca performansı önemsediğiniz varsayılarak, bant genişliği ve gecikme arasında bir dengeyi temsil eder.

Bu arada alternatifin sadece yerel olarak barındırılmadığını, ancak farklı bir yerel istekle birleştirdiğini varsayıyorum - genellikle ne zaman yapabileceğinizi birleştirmemek için iyi bir neden yoktur.

Bant genişliği sonsuzsa, en iyi kırılma DEĞİLDİR, çünkü en yavaş hizmetiniz kadar yavaş olacaksınız - gecikmeler mükemmel bir şekilde öngörülemediğinden, yeterli hizmetlerle, hızlı olsalar bile, sadece bir bite ihtiyacınız var yavaş sayfa yüklenmesine neden olmak için kötü şans.

Gecikme 0 ise, yükünüzü birçok sunucuya yaymak, birçok sunucuyu kullanarak bant genişliğini artırabilir (bant genişliği sınırlamalarının sunuculara değil istemcilere yakın olması yararlı değildir), ancak daha da önemlisi, iletilen veri miktarını azaltabilir önbelleğin etkinliğini artırarak biraz.

Senaryonuza bağlıdır, ancak komut dosyalarınız delice büyük değilse (hangi jquery değildir), gecikmenin bant genişliğinden daha fazla bir sorun olmasını beklerim. Bu noktada, birleştirilmiş yerel dosyanın parçası olarak jquery'yi barındırmak genellikle daha hızlıdır.

Yerel olarak barındırılmamanın nedenleri, örneğin bant genişliği için ödeme yaptığınızda veya yavaş bir sunucuda barındırdığınızda (istemciyle olan bağlantınız müşterinin değil, sizin tarafınızda tıkanır) veya müşterilerinizin gerçekten düşük bir bant genişliğine sahip olacağını bilirsiniz. (düşük uç dsl veya modemler, örneğin - mobil bant genişliği sorunlarından daha fazla gecikme sorununa sahip olma eğilimindedir) veya müşterileriniz bant genişliği (ör. mobil) için ödeme yapar ve komut dosyaları, küçük önbelleğe alma kazançlarının önemli bir kısmıdır (büyük olasılıkla değil) ).

Her durumda: çok daha alakalı olan ilk önce temel konuları ele alıp almadığınızdır; uygun önbellek başlıkları, birleştirme, küçültme ve gzipleme (tercihen yüksek sıkıştırma oranıyla). Ve işin püf noktası: eğer bunu YAPMAYSANIZ , en azından CDN yapacak, yani bu kazanacak ...

TL; DR: Kapsama + küçültme + gzipping + önbelleğe alma işleminiz varsa, CDN'nindaha iyi performansına rağmen yerel olarak küçük komut dosyaları sunmak CDN'den daha hızlıdır - ancak yalnızca ödevinizi yaptıysanız, muhtemelen ilk sayfada değil yük ve kesinlikle bu kuralın istisnaları vardır.


Bu arada, sadece bir istek kullanılarak kazanılan bazı bayt talaşları vardır: tek başına başlıklar neredeyse 1kb'dir, bu da 28k'lık bir yükte hiçbir şey değildir. gzip daha fazla bağlamla daha iyi çalışır, bu da 0.5k tasarruf sağlar. TCP, DNS, HTTPS genel giderleri kolayca buraya KB ekleyebilir ve daha da kötüsü RTT'ler ekleyebilir. Bu yüzden böyle küçük dosyalar için bir CDN düşündüğünüz kadar hızlı değildir.
Eamon Nerbonne

1

Google tarafından jQuery tarafından barındırılan kitaplığın kullanılması, sayfanızın daha hızlı yüklenmesine izin verir. Gerçekten de, kütüphane sayfanızdan sonra değil aynı zamanda yüklenir.


Ancak sayfa yüklenmesini nasıl etkiler?
Leo

1
Yerel kütüphaneler de sayfa yüklenirken yüklenir - Her iki durumda da varlığın indirilmesi (modern) tarayıcı, genellikle belgenin tamamı indirilmeden önce gerçekleşen indirmeyi tetikleyen kod snippet'ini gördüğünde başlar. Bir örnek için bu Firebug ekran görüntüsüne bakın
Jost
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.