Github, javascript kitaplıkları için CDN olarak kullanılmalı mı? [kapalı]


95

Javascript kitaplıklarını kendi sunucunuz yerine bir CDN'den sunmak çok büyük avantajlar sağlar. Sunucunuz için daha az iş, CDN'nin kullanıcıya sunucunuzdan daha yakın bir kopyaya sahip olma olasılığı, ancak en önemlisi, kullanıcınızın tarayıcısında bu URL'den zaten önbelleğe alınmış olması iyi bir şans. Sonuncusu, herkes için daha az toplam iş anlamına gelir, bu yüzden açıkça her yerde bir kazançtır ve muhtemelen biz (geliştiriciler) javascript hizmetimizi sunmak için CDN'lere daha çok güveniyoruz.

Ancak popüler javascript CDN'leri (Google, Microsoft, diğerleri?) Yalnızca az sayıda dosya barındırır. Diğerleri için onları kendimiz barındırma veya ... kaynak kontrol sunucusunu bir tür CDN olarak kullanma seçeneğine sahibiz. Github veya benzerinin, küresel olarak hizmet vermek için optimize edilmiş coğrafi olarak dağıtılmış dosya önbelleğine sahip olma ihtimali düşüktür. Ancak yaygın bir uygulama ise, kullanıcının tarayıcısının önbelleğe alması için iyi bir şans vardır. Sunucularımızdan github'a yükleme boşaltma argümanı, yalnızca Github bunu yapmaya gönüllü olduysa geçerlidir.

Öyleyse, yaygın bir uygulama mı? Birbirimizi bunu yapmaya teşvik etmeli miyiz? Github umursuyor mu? Resmi bir politikaları var mı?


5
Yazar dosya yapısını yeniden düzenlerse ne olur? Yüzlerce web sitesindeki sorun kodu değil.
Raynos

2
@Raynos GitHub deposunun "yazarı" iseniz, değişiklikleri kontrol edersiniz.
Chris Jacob

2
@ChrisJacob nokta bu. Kendi dosya yapımı değiştirirsem, artık var olmayan bir kod parçasına işaret etmeniz benim sorunum değil.
Raynos

5
Sen kullanabilirsiniz rawgithub.com bir jsPerf testinde kullanmak belki hızlı bir demo için biriyle paylaşmak iş-içinde-ilerleme HTML, JavaScript veya CSS veya.
Giovanni Cappellotto

@GiovanniCappellotto'nun yukarıdaki yorumunda artık doğru bir yanıt olduğu için soru yeniden açılmalıdır.
Supersharp

Yanıtlar:


94

Performans veya IE9 uyumluluğunu önemsiyorsanız bunu JavaScript dosyaları için yapmamalısınız.

GitHub, "ham" dosyalarını uzak gelecekte sona erme başlığıyla sunmaz. Siteler arası önbelleğe alma olasılığı olmadan, JavaScript'inizi barındırmak için genel bir CDN kullanmanın en büyük avantajını kaybedersiniz. Aslında GitHub'ı bir CDN olarak kullanmak, her kullanıcının dosya için ilk isteğinden sonra dosyaları kendi sunucunuzda barındırmaktan daha yavaş olacaktır (sunucunuzda önbelleğe almayı doğru şekilde yapılandırdığınızı varsayarsak).

Diğer bir sorun, GitHub'ın dosyanın gerçek MIME türüyle eşleşen içerik türü başlığına sahip "ham" dosyalar sunmamasıdır. IE9'da (ve belki diğer tarayıcılar / proxy'ler / güvenlik duvarları / vb.), Doğru içerik türüyle sunulmayan JavaScript dosyaları varsayılan olarak engellenir. Bunu BlockUI demo sayfasında çalışırken görebilirsiniz, örneğin:

görüntü açıklamasını buraya girin


10
Ayrıca ... "Ham dosyayı bu şekilde talep ettiğinizde, dosyaya doğrudan dosya sisteminden erişmiyorsunuz! Uygulama kodu katmanlarından da geçiyorsunuz, bu kesinlikle sitenizi yavaşlatacak. Bunu yapma . Bunun yerine, bir gh- page
Chris Jacob

RawGit, ham dosyaları doğrudan GitHub'dan uygun Content-Type başlıklarıyla sunar. URL'de belirli bir etiket veya kaydetme karması kullanın (dal değil). Dosyalar, URL'ye göre kalıcı olarak önbelleğe alınır. rawgit.com
Kerem Baydoğan


11

Bu yakın zamanda github'ın destek forumlarında sorulmuştu ve resmi cevap, sorun olmadığı idi.

Github gerçekten hiç: Ben diğer cevaplar ile kabul söyledikten geliyordu Google ve Microsoft bunun için belirli bir altyapı varken, bir CDN olmak.


7
Netleştirmek için. Bu destek forumu yanıtı, yanıtımda bağlantı kurduğum makaleyle ilgilidir (GitHub Sayfaları CDN olarak - GitHub "ham" dosyalar değil): stackoverflow.com/questions/5502540/… ).
Chris Jacob

10

Prototipleme / kişisel şeyler için sorun değil, ancak üretim için bakardım:

http://www.cdnjs.com/

http://cachedcommons.org/ - artık mevcut değil


Umarım CachedCommons.com'un sadece github.com'dan hizmet verdiğini biliyorsunuzdur
ocodo

Ancak url'ler , CachedCommons cachedcommons.org/cache/mootools/1.2.4/javascripts/mootools.js'yi gösteriyor gibi görünüyor , sanırım bir proxy olabilir.
meleyal

Üzgünüm, demek istediğim, Github'ı bir CDN olarak kullanma hakkındaki eski bilgiler artık geçerli değil, görünüşe göre ve her şey yolunda. Gelecekteki olası kullanılabilirlik sorunlarının yanı sıra, bundan kaçınmak için bir kitaplığı çatallamaya değer.
ocodo

2
Görünüşe göre Github'a
meleyal

1
Aslında bu bir sorun değil, GitHub tabanlı bir kaynağı bir cdn olarak kullanacaksanız, statik sayfalar sitesinin bir parçası olarak barındırıldığından emin olun (şimdi GitHub.io) - Bunu şu şekilde yapmalısınız bu arada ilk sırada.
ocodo

-2

Bunu aylardır yapıyorum, önce bazı endişelerim var, ancak dosyalarınızın halka açık olmasıyla ilgili herhangi bir sorununuz yoksa tamamen harika, umursuyorsanız küçültülmüş sürümleri kullanın.

Ama yine de - Google ve MS jQuery & jQuery Şablonları için alanı yönetiyor - bu yüzden onları bunun için kullanıyorum.

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.