Tarayıcı kurulumunda JQuery ve benzeri araçlar oluşturulabilir mi?


19

JQuery ve CDN'ler hakkında başka bir soru okuduktan sonra, JQuery gibi araçların tarayıcıyla "gelmesi", böylece bir CDN'den veya kendi ana sunucunuzdan ilk indirme ihtiyacını azaltır / ortadan kaldırır.

JQuery dosyaları özellikle küçüktür, bu yüzden kolayca bir tarayıcı kurulumunun bir parçası olarak farklı sürümlerin bir sayısına (tümü?) Sahip olabilirsiniz. Şimdi yeterince adil, bu kurulum ayak izini artırabilir, tarayıcının kendisi için indirme süresi.

Daha sonra siteler, CDN'den önce (daha sonra önbelleğe alınır), önce web sitesi sunucusunun kendisinin indirilmesini varsayılan olarak "yerel" olarak kontrol edebilir.

Bu mümkün ise, yapıldı ve eğer yapılmadıysa, neden yapılmadı?


3
Belirli bir JavaScript işlevi her yerde ihtiyaç duyulduğu kadar yaygınlaştığında, dile eklenir. Array.prototype.forEach, Array.prototype.indexOf, Object.createJavaScript motoru kendisi bindirildiğini var kod örnekleridir.
zzzzBov

Chrome, son kullanıcıya bir site ilk oluşturulduğunda gerekli jQuery / javascript dosyalarını önbelleğe alma özelliğine sahip bir uzantı yükleme seçeneği sunan bir çözüm bulacağından eminim? Kullanıcı reddederse, isteği her zamanki gibi zorlar. "Bana bir daha sorma" seçeneği bu seçeneği devre dışı bırakabilir. Ayarlarda son kullanıcının basit bir onay kutusu listesini kullanarak tarayıcı önbelleğinde hangi js dosyalarının saklanacağını seçebileceği bir alan olabilir. Her zaman istemciye özel js gönderilecektir, ancak istek başına istemciye gönderilen js dosyalarının kaldırılmasının p
yardpenalty 0

1
Hangi sürümü içermelerini önerirsiniz? Gelecek hafta ne olacak?
pdr

@pdr - eski soru, bunu yapmak için olumsuz birçok cevap var. Ancak tarayıcı sürümünü en son sürümü kolayca paketleyebilir ve kullanıcı kodunun gerektiğinde CDN'den daha yeni bir sürüm isteğinde bulunmasına izin verebilirsiniz. JQuery 2.0 gibi değişiklikleri kırarak, her ikisine de sahip olabilir ve kodun seçilmesine izin verebilirsiniz. Gerçekten bir sessiz nokta olsa :)
ozz

Yanıtlar:


15

Yapamamalarının teknolojik bir nedeni yok. Ancak bu gerekli değildir ve web'in temel felsefesine aykırıdır. Gerekli değil, çünkü neredeyse aynı şeyi başarabilirsin. Web'in felsefesine aykırıdır, çünkü kütüphanelerin tarayıcıyla birlikte paketlenmesi / paketlenmemesi gereken yukarıdan aşağıya, merkezi bir otorite olmasına neden olur.

Düzenleme: JS kütüphaneleri öncelikle DOM ile uğraşmayı kolaylaştırmak için vardır. Üçüncü taraf kitaplıkların tarayıcı ile paketlenmesinin DOM API'sini daha keyifli hale getirmenin doğru yolu olduğunu düşünmüyorum.


1
Teşekkürler Dan - açıkladığınız herhangi bir bağlantı okuyabilirim?
ozz

1
Her sayfa istediğimde megabaytlık ortak kütüphanelere megabayt indirmeye ihtiyaç duymanın, web sayfalarını küçük ve erişilebilir tutmak için başka bir temel web felsefesine aykırı olduğunu iddia ediyorum. Sonuçta birçok insan hala modem ve yavaş uydu bağlantılarında.
maple_shaft

4
Bir kök kanal operasyonu DOM API'sini daha keyifli hale getirir ...
Donal Fellows

1
@maple_shaft, bu biraz fena bir argüman. Minimize edilmiş jQuery dağılımı 31K'dır. Kesinlikle çılgın sayıda farklı kütüphane yükleyen web sayfaları olduğu halde, soru jQuery'ye özgüdür ve berbat programcılar için herhangi bir muhasebe yoktur.
Adam Crossland

16

Aslında, tanımladığınız şey yıllardır zaten var. Buna önbellekleme denir . Ve sadece JQuery için değil, tarayıcınızın indirebileceği her şey için kullanılabilir.

Daha sonra siteler, CDN'den önce, en sonunda web sitesi sunucusundan indirmeyi varsayılan olarak "yerel" olarak kontrol edebilir.

Her tarayıcının yaptığı tam olarak budur. Önce yerel önbelleği kontrol eder, ardından CDN'den bir tane indirir. Uygun önbellek yapılandırmasıyla, aylarca sunucuya (yeni sürümü kontrol etmek için) gidiş dönüş bile yoktur.

Tarayıcı kurulumuna JQuery eklenmesi:

  • Tarayıcı uygulamasına ve kurulumuna gereksiz karmaşıklık katın,

  • Güncelleme sürecine gereksiz karmaşıklık katmak,

  • İhtiyacı olmayanlar için bile, JQuery'nin güncel sürümünü korumak için güncelleme sayısını artırın,

  • Karışıklık ekleyin: Neden JQuery değil, Prototip veya başka bir çerçeve, görüntü, CSS dosyası vb.

  • vb.

Özellikler, performans vb. Açısından hiçbir faydası olmayan bir yazılım ürününün karmaşıklığını artırmak son derece kötü bir fikirdir.


Teşekkürler. Evet, sorumda net değildim. Bunun olduğunun farkındayım. İlk indirme ihtiyacını bile ortadan kaldırıyorum. Soruyu güncelleyeceğim.
ozz

tüm nedenleriniz için teşekkürler tarayıcı kurulumuna dahil DEĞİL :-)
ozz

6
İlk indirme ihtiyacını ortadan kaldıramazsınız. JQuery kurulumunda yer alıyorsa, o olduğu kişi kurulum yürütülebilir indirir ilk defa (JQuery yeni bir sürümü yayınlandığında o zaman güncellemeler üzerinden tekrar indirilir) için indirilen.
Arseni Mourzenko

2
Performans isabetini ortadan kaldırmaz, ancak ilk web sitesinin ziyaretinden kurulum yürütülebilir dosyasının indirilmesine taşır, bu da genel olarak, bu bir performans tasarrufunun tersidir. Son JQuery sürümünün yayınlanmasından bu yana güncellenmemiş eski tarayıcıları ve tarayıcıları desteklemek istemiyorsanız CDN ihtiyacını ortadan kaldırmaz.
Arseni Mourzenko

1
@All Bu konuyu daha fazla tartışmak isterseniz, lütfen sohbet etmek için bunu kullanın.
maple_shaft

5

JQuery'nin bir js kütüphanesi olduğunu, fiilen bir haline geldiğini ve her derde deva olarak göründüğünü unutmayın (SO'da kayda değer hale gelme noktasına kadar), ama sadece bir js kütüphanesi.

Betik (EMCAScript) standartlaştırıldığından herşey olduğu zaten tarayıcıda dahil, başka bir şey standart dışı olacak diğer tarayıcılarda eklenmiş ve IE olay modeli gibi standart olmayan tarayıcılar için çapraz tarayıcı sorunları (ile bitirmek istiyorum ) jQuery gibi kitaplıkların ilk başta oluşturulma nedeninin bir kısmını etkiler.

Kısa cevap: dahil edilebilirler, ancak olmamalıdırlar.


5

Tarayıcı önbellekleme, bahsettiğinize çok benzer bir şey sağlar. JQuery veya başka bir JS kütüphanesinin bir kez indirilmesi ve daha sonra başka istekler üzerine önbellekten alınması söz konusu olmalıdır.

JQuery en yaygın JavaScript kütüphanesi olsa da, sadece bir tane değil ve tarayıcının yüklü bir bileşeni haline getirmenin JS ekosistemi için kötü olacağını düşünüyorum. Rekabet sağlıklıdır ve genellikle yeniliğe yol açar ve biz jQuery'ye özel bir konum vererek geliştiriciler ve yazılım kullanıcılarına iyi hizmet veremeyiz.

Önbelleği hesaba kattığınızda, elde ettiğiniz avantaj çok, çok azdır. JQuery'nin küçültülmüş sürümü yalnızca 31K'dır. Bu bir şeyi değiştirmek için bir gerekçe değil .


teşekkürler Adam - evet, ilk indirme, önbellek senaryosunu biliyorum. Düşüncelerim de bunun yerini almak. JQuery sadece 1 örnektir, ancak rekabet hakkındaki düşüncelerinize katılıyorum, bu, önermememin ana nedeni olmayabilir gibi görünüyor. Daha sonra farklı "varsayılan" bileşenler vb.
Setlere

Önbelleğin farkında olduğumdan bahsetmek için soruyu güncelledim :-)
ozz
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.