Neden jQuery için Google'ın CDN'sini kullanmalıyım?


169

Bu bazıları için açık olabilir, ama merak ediyorum: Neden sitem için jQuery barındırmak için Google'ın sunucusuna güvenmeliyim?

Sadece bu şekilde daha hızlı yüklendiği için mi?



2
Hiç kimse Google'ın politikasının JS dosyalarına hotlinking konusunda nelerden bahsettiğini (hotlinking genellikle kaşlarını çattı), bu nedenle Google'ın bunun iyi olduğunu belirttiği URL'yi ve barındırdığı kütüphaneler hakkında daha fazla bilgi verir: code.google.com/apis/ajaxlibs/ belgeler / index.html
Loftx


1
Birçok kullanıcı zaten başka bir siteyi ziyaret ederken Google veya Microsoft'tan jQuery indirmiştir. Sonuç olarak, sitenizi ziyaret ettiklerinde önbellekten yüklenir, bu da daha hızlı yükleme süresine yol açar
AminM

Microsoft veya Google kullanmamalısınız. MaxCDN kullanın. Burada en önemli şey olan önbellek isabet alması çok daha muhtemeldir blog.jquery.com/2014/01/14/…
0fnt

Yanıtlar:


393

Bunun nedeni ise:

  1. Mevcut paralelliği artırır.
    (Çoğu tarayıcı, belirli bir siteden aynı anda yalnızca 3 veya 4 dosya indirir.)

  2. Önbellek vurma olasılığını artırır.
    (Daha fazla site bu uygulamayı izledikçe, daha fazla kullanıcı dosyayı hazır bulunduruyor.)

  3. Yükün mümkün olduğunca küçük olmasını sağlar.
    (Google dosyayı çok çeşitli biçimlerde önceden sıkıştırabilir (GZIP veya DEFLATE gibi). Bu, süper sıkıştırılmış ve anında sıkıştırılmadığı için indirme süresini çok küçük hale getirir.)

  4. Sunucunuz tarafından kullanılan bant genişliği miktarını azaltır.
    (Google temel olarak ücretsiz bant genişliği sunmaktadır.)

  5. Kullanıcının coğrafi olarak yakın bir yanıt almasını sağlar.
    (Google'ın tüm dünyada sunucuları vardır ve gecikmeyi daha da azaltır.)

  6. (İsteğe bağlı) Komut dosyalarınızı otomatik olarak güncel tutarlar.
    (Eğer "pantolonunuzun koltuğundan uçmak" isterseniz, sundukları herhangi bir komut dosyasının en son sürümünü her zaman kullanabilirsiniz . Bunlar güvenlik deliklerini düzeltebilir, ancak genellikle sadece eşyalarınızı kırabilir.)

10
Giderek daha fazla neden bulmaya devam etmeyi seviyorum. Sadece bunun için +1.
Matchu

6. Google sunucuları muhtemelen sizinkinden daha hızlıdır! Herkes 3 Google gibi küçültmek olabilir çünkü nokta 3 gerçekten alakalı olduğundan emin değilim. Harika bir cevap için +1 :)
Paul Creasey

1
JQuery zaten küçültülmüş bir sürüm verdiğinden # 3 muhtemelen gzip ve benzeri ile daha fazla ilgisi var gibi hissediyorum.
Matchu

2
Tanrım herkes bana saldırıyor, fikirlerimi gönderdim ve kabul
edildim

1
@ farshad: Sana saldırmamak, bir sonraki cevap kadar iyi olmayan kabul edilen cevaba saldırmak. Topluluk soru ve cevapları bu şekilde çalışır. Bir dahaki sefere cevabınızı biraz daha profesyonel olarak biçimlendirmeyi ve soruyla ilgili eleştirinizi faydalı, yapıcı türle sınırlamayı deneyin.
Joel

58

Eğer olabilecek birkaç senaryo vardır değil Google'ın CDN dan jQuery kullanmak istiyorum:

  1. Web sunucusunun istemcilerle aynı ağda barındırıldığı bir intranet uygulaması oluştururken. Google'ın CDN jQuery yazılımını kullanıyorsanız, yerel ağdaki bir web sunucusu yerine İnternet'i arayacaksınız. Bu, kuruluşunuz için bant genişliğini artırır ve daha yavaştır.

  2. Uygulamanızı çevrimdışı çalıştırmak istediğinizde . (İlk sayıya oldukça bağlı) Bir geliştirme ortamında çalışmanız gerekiyorsa (örneğin Bower ile yönetilir ), uygulamanızı herhangi bir internet bağlantısı olmadan çalıştırabilmeniz gerekebilir (örn: bir trende :)

  3. Özelleştirmeniz gerektiğinde . Örneğin , yalnızca belirli modülleri kullanmak veya AMD adını ayarlamak amacıyla kitaplığı oluşturmak için Grunt kullanıyorsanız

  4. JQuery gerektiren sayfaları SSL üzerinden sunarken. Güvenlik sorunlarını ve uyarılarını önlemek için JavaScript'i SSL üzerinden ve sayfanızda sunmalısınız.

Ayrıca, Microsoft CDN'lerinde jQuery barındırır . Bu, Google'ın barındırdığı jQuery ile karşılaştırılabilecek başka bir seçenektir.


35
Barındırılan JavaScript kitaplıklarının SSL sürümünü sunmak için Google'ın sunucularını kullanabileceğiniz bir FYI. ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js çalışır.
Aaron Wagner

Bilmek güzel Aaron. Teşekkürler.
Lance Fisher

3
Microsoft'tan bahsettiğiniz için +1. Google alır yolu imo çok fazla kredi.
Evet Barry

7
Ayrıca FYI: Şema göreli köprüler, örneğin src="//ajax.googleapis.com/...", iş.
John Gietzen

3
Ve ayrıca cndjs düşünün
Bryce

29

TJ VanToll tarafından yapılan bu çalışma , jQuery'yi bir CDN'den yüklemek yerine diğer komut dosyalarıyla birleştirmenin daha iyi olduğuna ikna etti.

Nedeni, mobil cihazlarda jQuery getirilmesinde yer alan gecikme süresidir:

"2012'de Amerika Birleşik Devletleri'nde bir mobil ağdaki ortalama RTT süresi 344 ms idi. Ve 344 msn, yalnızca ortalama web sayfasının 93'ü yaptığı her HTTP isteği için değil, aynı zamanda her DNS araması ve TCP bağlantısı için de geçerli ... Ortalama RTT'ler gelişirken, mevcut ağlar fizik tarafından belirlenen teorik sınırın küçük bir faktörü içinde olduğundan, yalnızca küçük ek kazançlar elde edilebilir. "

O da değinir Bu yayını gösterir neden aslında olduğun Steve Souders gelen önbelleğe alma faydayı elde etmek olası bir CDN kullanarak:

"CDN sağlayıcılarındaki, jQuery sürümlerindeki ve protokol kullanımındaki (http ve https) parçalanma nedeniyle, CDN önbellek isabet şansı şaşırtıcı derecede düşüktür - ve harici bir alandan indirme işlemi bir değil üçünü gerçekleştirme potansiyeline sahiptir gidiş-dönüş (bir DNS araması, bir TCP bağlantısı ve bir HTTP GET). "


3
HTTP2 ve SPDY için bu artık geçerli değil. Bugün tüm harici kaynaklarınızı Cdnjs.com veya benzeri bir CDN'de barındırabilirsiniz ve tüm dosyalar aynı istek kullanılarak indirilecektir. Bu temelde bitiştirmekle aynı.
Ricardo Polo Jaramillo

13

En büyük fayda önbelleklemedir. Teori şu ki, bir ziyaretçi JavaScript kitaplıklarını yükleyen bir siteyi ziyaret ederse, örneğin Google CDN'den jQuery deyin, o zaman web sitenizi ziyaret ettiklerinde, kitaplık zaten kullanıcının tarayıcı önbelleğinde olur ve tekrar indirilmesi gerekmez . Bu teoride harika görünüyor.

Burada ve başka yerlerde paylaşılan faydaların hepsi teoriktir. CDN kullanımının ve beklenen performans avantajlarını sağlayıp sağlamadığını derinlemesine analiz ettim. http://www.root777.com/appdev/does-using-google-libraries-api-cdn-give-you-performance-benefits


Bu cevabın hafife alınması gerekiyor. Yukarıdaki "pro" kabul edilen cevaba eşit derecede geçerli "eksileri" sağlar.
Thomas Wana

@ user239558 Çalışmanın yazarı aslında bir CDN ;-) kullansaydı bağlantı ölmeyecekti Hata: [function.require]: akış açılamadı: / homepages / 41 / d222999437'de böyle bir dosya veya dizin yok /htdocs/wp-content/themes/prose/functions.php
jplandrain

Makale iyi düşünülmüş değil. En az yaygın olan jQuery kütüphanelerinin, tüm sayfaların yaklaşık% 0,5'inde Google CDN tarafından sunulduğunu söylüyor. Genel bir göz atma oturumu sırasında, özellikle de bu sayfayı barındıran site gibi sitelere giden bu küçük bağlantılar gibi birçok sayfayı ziyaret ediyorum. Veya blog siteleri. Kolayca günde 30 benzersiz siteyi ziyaret ediyorum, bir hafta sonra önbelleğe alınmama şansı oldukça zayıf. Tüm kullanıcılarınız için önbelleğe alınmamış olsa da, interneti kapsamlı bir şekilde kullanan kişiler neredeyse her zaman önbelleğe alınacaktır, çünkü toplamda 1'den fazla benzersiz alanı ziyaret ederler.
Aidiakapi

8

Google'ın, birçok insanın düşünmediği jQuery'nizi barındırmasına izin vermemenin önemli bir nedeni, Çin'deyseniz indirilmemesidir. Google CDN'leri tarafından barındırılan diğer birçok komut dosyası, yazı tipi vb. İle birlikte engellendi. Çinli bir kitleye ulaşmanız gerekiyorsa, her zaman kendi sunucunuzda barındırılan bir geri dönüşü kullanmak en iyisidir. Google APIS Çin'de Engellendi


Ben katılmıyorum @tmthydvnprt. Soru tartışılıyor, bu yüzden hatanın çoğu başlangıçta yatıyor, ancak bu soruya cevap veriyor.
Hoşçakal StackExchange

1
Buraya aynı şeyle geldim. Kullanıcılar Çin'de ise, Google'dan gelen her şey büyük güvenlik duvarı tarafından engellenir. Yine de, bu muhtemelen bir sorun değil, çünkü Çin'de birçok kişi bir VPN hizmeti kullanıyor ve muhtemelen Çin pazarını hedeflemek istemiyorsunuz.
Justin

0

"Neden yapmamalısın ..." ve "Neden yapmamalısın ..."

Bir CDN'den jQuery yüklemek istiyorsanız Google'a bir alternatifler listesi eklemek istiyorum.

Ancak özetlemek gerekirse, temel olarak genel web sitesi / uygulama performansınızı geliştiriyorsunuz.


0

CDN'yi bir Servis Çalışanı ile kullanın, CDN'yi her kod güncellemenizde değil, istemci yaşamında bir kez indirebilirsiniz.

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.