jQuery -
Ancak son yıllarda web geliştirmenin önde gelen aracı olma durumu erozyona uğradı. JQuery'nin neden popüler hale geldiğine ve neden modası geçtiğine ve ayrıca hangi durumlarda modern web siteleri oluşturmak için onu kullanmanın hala tavsiye edildiğine bakalım.
jQuery'nin Kısa Tarihi
John Resig (
jQuery, şu sloganı temel alan bir Javascript kütüphanesidir: Javascript'i kodlamak eğlenceli olmalı. jQuery ortak, tekrarlanan görevleri üstlenir, tüm gereksiz işaretlemeleri ortadan kaldırır ve bunları kısa, zarif ve temiz hale getirir.
jQuery'nin iki ana avantajı vardır. Birincisi, web sayfalarını değiştirmek için uygun bir API'dir. Özellikle elemanların seçimi için güçlü yöntemler sağlar. jQuery yalnızca kimliğe veya sınıfa göre seçim yapmakla kalmaz, aynı zamanda karmaşık ifadeler yazmanıza, örneğin öğeleri diğer öğelerle olan ilişkilerine göre seçmenize de olanak tanır:
// Select every item within the list of people within the contacts element
$('#contacts ul.people li');
Zamanla seçim mekanizması ayrı bir kütüphane haline geldi
Kütüphanenin ikinci avantajı tarayıcılar arasındaki farklılıkları soyutlamasıydı. O yıllarda tüm tarayıcılarda güvenilir şekilde çalışabilecek kod yazmak zordu.
Standardizasyon eksikliği, geliştiricilerin tarayıcılar ve uç durumlar arasındaki çok sayıda farklılığı hesaba katması gerektiği anlamına geliyordu. Şuna baksana
// If Mozilla is used
if ( jQuery.browser == "mozilla" || jQuery.browser == "opera" ) {
// Use the handy event callback
jQuery.event.add( document, "DOMContentLoaded", jQuery.ready );
// If IE is used, use the excellent hack by Matthias Miller
// http://www.outofhanwell.com/blog/index.php?title=the_window_onload_problem_revisited
} else if ( jQuery.browser == "msie" ) {
// Only works if you document.write() it
document.write("<scr" + "ipt id=__ie_init defer=true " +
"src=javascript:void(0)></script>");
// Use the defer script hack
var script = document.getElementById("__ie_init");
script.onreadystatechange = function() {
if ( this.readyState == "complete" )
jQuery.ready();
};
// Clear from memory
script = null;
// If Safari is used
} else if ( jQuery.browser == "safari" ) {
// Continually check to see if the document.readyState is valid
jQuery.safariTimer = setInterval(function(){
// loaded and complete are both valid states
if ( document.readyState == "loaded" ||
document.readyState == "complete" ) {
// If either one are found, remove the timer
clearInterval( jQuery.safariTimer );
jQuery.safariTimer = null;
// and execute any waiting functions
jQuery.ready();
}
}, 10);
}
Ve jQuery sayesinde geliştiriciler tüm bu tuzaklarla ilgili endişeleri kütüphaneyi geliştiren ekibin omuzlarına aktarabildiler.
Daha sonra jQuery, animasyonlar ve Ajax gibi daha karmaşık teknolojilerin uygulanmasını kolaylaştırdı. Kütüphane, web siteleri için etkili bir şekilde standart bir bağımlılık haline geldi. Ve bugün internetin büyük bir kısmına güç sağlıyor. W3Techs buna inanıyor
JQuery geliştirme üzerindeki kontrol de daha resmi hale geldi. 2011 yılında takım
2015 yılında jQuery Vakfı, Dojo Vakfı ile birleşti.
Değişen koşullar
Ancak son yıllarda jQuery
Tarayıcılar
Bir dizi nedenden dolayı tarayıcı farklılıkları ve sınırlamaları daha az önemli hale geldi. Öncelikle standardizasyon gelişti. Büyük tarayıcı geliştiricileri (Apple, Google, Microsoft ve Mozilla) tarayıcıyı geliştirmek için birlikte çalışıyor.
Tarayıcılar hala birçok önemli açıdan birbirlerinden farklı olsalar da, satıcıların en azından ortak bir veri tabanı arama ve oluşturma aracı var.
// jQuery
$.getJSON('https://api.com/songs.json')
.done(function (songs) {
console.log(songs);
})
// native
fetch('https://api.com/songs.json')
.then(function (response) {
return response.json();
})
.then(function (songs) {
console.log(songs);
});
Yöntemler
// jQuery
const fooDivs = $('.foo div');
// native
const fooDivs = document.querySelectorAll('.foo div');
Artık öğe sınıflarını aşağıdakileri kullanarak değiştirebilirsiniz:
// jQuery
$('#warning').toggleClass('visible');
// native
document.querySelector('#warning').classList.toggle('visible');
Site
Yerel özelliklerin kullanılması sayfa performansını artırır. Birçok
İkinci neden ise tarayıcıların eskisinden çok daha hızlı güncellenmesidir. Çoğu kullanıyor
Bu, yeni tarayıcı özelliklerinin ve hata düzeltmelerinin çok daha hızlı dağıtılacağı ve geliştiricilerin, yeni tarayıcı özellikleri ve hata düzeltmelerinin yayınlanmasını beklemek zorunda kalmayacağı anlamına gelir.
Üçüncü neden ise Internet Explorer'ın tamamen anlamsız bir duruma yaklaşmasıdır. IE uzun zamandır dünya çapında web geliştirmenin belası olmuştur. Hataları çok yaygındı ve IE 2000'li yıllarda hakim olduğu ve sürekli güncellenen bir güncelleme stratejisi kullanmadığı için eski sürümler hâlâ yaygın.
Microsoft, 2016 yılında IE'nin kullanımdan kaldırılmasını hızlandırdı.
JQuery bile IE 8 ve aşağısını desteklemeyi bıraktı
Yeni çerçeveler
jQuery'nin ortaya çıkışından bu yana, modern liderler de dahil olmak üzere birçok çerçeve oluşturuldu.
İlk olarak kullanıcı arayüzünü bileşenlere ayırmayı kolaylaştırırlar. Çerçeveler sayfa oluşturma ve güncelleme işlemlerini gerçekleştirmek için tasarlanmıştır. Ve jQuery genellikle yalnızca güncelleme için kullanılır ve ilk sayfayı sağlama görevi sunucuya bırakılır.
Öte yandan React, Angular ve Vue bileşenleri HTML, kod ve hatta CSS'yi sıkı bir şekilde birleştirmenize olanak tanır. Kod tabanını birçok bağımsız işleve ve sınıfa böldüğümüz gibi, arayüzü yeniden kullanılabilir bileşenlere bölme yeteneği de karmaşık sitelerin oluşturulmasını ve bakımını kolaylaştırır.
İkinci avantaj, daha yeni çerçevelerin, geliştiricinin arayüzün nasıl görünmesi gerektiğini tanımladığı ve arzu edileni elde etmek için gerekli tüm değişiklikleri yapma işini çerçeveye bıraktığı bildirimsel bir paradigmaya bağlı olmasıdır. Bu yaklaşım, jQuery kodunu karakterize eden zorunlu yaklaşıma aykırıdır.
JQuery'de herhangi bir değişiklik yapma adımlarını açıkça yazarsınız. Ve bildirimsel bir çerçevede “Bu verilere göre arayüzün şöyle görünmesi gerekiyor” diyorsunuz. Bu, hatasız kod yazmayı çok daha kolay hale getirebilir.
Geliştiriciler web sitesi geliştirmede yeni yaklaşımlar benimsediler, bu nedenle jQuery'nin popülaritesi azaldı.
JQuery ne zaman kullanılmalı?
Öyleyse ne zaman gerektiği jQuery'yi kullan?
Projenin karmaşıklığı artarsa, karmaşıklığı anlamlı bir şekilde yönetmenize olanak tanıyan başka bir kitaplık veya çerçeveyle başlamak daha iyidir. Örneğin arayüzü bileşenlere bölün. Bu tür sitelerde jQuery kullanmak ilk başta iyi görünebilir, ancak hızlı bir şekilde hangi parçanın sayfanın hangi bölümünü etkilediğinden emin olamadığınız spagetti koduna yol açacaktır.
Öyle bir durumdayım ki, herhangi bir değişiklik yapmaya çalışırken, bu zor bir iş gibi geliyor. Hiçbir şeyi bozmayacağınızdan emin olamazsınız çünkü jQuery seçicileri sunucu tarafından oluşturulan HTML yapısına bağlıdır.
Terazinin diğer ucunda ise yalnızca biraz etkileşim veya dinamik içerik gerektiren basit siteler yer alıyor. Bu durumlarda da varsayılan olarak jQuery'yi tercih etmem çünkü yerel API'lerle yapabileceğiniz çok daha fazlası var.
Daha güçlü bir şeye ihtiyacım olsa bile özel bir kütüphane arayacağım;
Bence jQuery'yi kullanmanın en iyi mantığı, bir web sitesinin ön ucu için kapsamlı işlevsellik sağlamasıdır. Çeşitli yerel API'leri veya özel kitaplıkları öğrenmek yerine yalnızca jQuery belgelerini okuyabilir ve anında üretken olabilirsiniz.
Zorunlu yaklaşım iyi ölçeklenmez ancak öğrenilmesi diğer kütüphanelerin bildirimsel yaklaşımından daha kolaydır. Açıkça sınırlı yeteneklere sahip bir site için jQuery'yi kullanmak ve sakin bir şekilde çalışmak daha iyidir: kitaplık karmaşık montaj veya derleme gerektirmez.
Ayrıca sitenizin zamanla karmaşıklaşmayacağından eminseniz ve jQuery'den daha fazla kod yazmayı gerektirecek yerel işlevsellik umurunuzda değilse jQuery iyidir.
IE'nin eski sürümlerini desteklemeniz gerekiyorsa bu kütüphaneyi de kullanabilirsiniz. O zaman jQuery, IE'nin en popüler tarayıcı olduğu günlerdeki gibi size hizmet edecek.
Prospeksiyon
jQuery yakın zamanda ortadan kaybolmayacak. O
jQuery'nin işlevselliği önemli ölçüde değişmediği sürece, kitaplığın kullanımının önümüzdeki birkaç yıl içinde yavaş ama istikrarlı bir şekilde azalmaya devam etmesi muhtemeldir. Yeni web siteleri başlangıçtan itibaren daha modern çerçeveler kullanılarak oluşturulma eğiliminde ve jQuery için uygun kullanım durumları giderek daha nadir hale geliyor.
Bazı insanlar web geliştirme araçlarının eskime hızından hoşlanmıyor ama bana göre bu hızlı ilerlemenin kanıtı. jQuery birçok şeyi daha iyi yapmamızı sağladı. Aynı durum onun halefleri için de geçerlidir.
Kaynak: habr.com