jQuery Geçmişi ve Eskileri

jQuery Geçmişi ve Eskileri
jQuery - bu en popüler olanı dünyada bir JavaScript kütüphanesi. Web geliştirme topluluğu bunu 2000'li yılların sonlarında oluşturdu ve sonuçta jQuery'yi kullanan zengin bir site, eklenti ve çerçeve ekosistemi ortaya çıktı.

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 (John Resig) 2005 yılında kütüphanenin ilk versiyonunu oluşturdu ve 2006 yılında yayınlandı-m, BarCampNYC adlı bir etkinlikte. Açık jQuery resmi web sitesi yazar şunu yazdı:

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 Cızırtı.

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 bu erken jQuery kaynak kodu ve jQuery.browser'ı arayın. İşte bir örnek:

// 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 Günümüzde sitelerin %74'ü jQuery kullanıyor.

JQuery geliştirme üzerindeki kontrol de daha resmi hale geldi. 2011 yılında takım jQuery Board'u oluşturdum. Ve 2012'de jQuery Board jQuery Foundation'a dönüştürüldü.

2015 yılında jQuery Vakfı, Dojo Vakfı ile birleşti. JS Vakfı'nı oluşturmak, daha sonra Node.js Vakfı ile birleşti. 2019-m oluşturmak için OpenJS VakfıjQuery'nin de dahil olduğu "çığır açan projeler. »

Değişen koşullar

Ancak son yıllarda jQuery popülerliğini kaybetti. GitHub kütüphaneyi sitemin ön kısmından kaldırdı. Önyükleme v5 jQuery'den kurtulunçünkü bu onun"normal JavaScript için en büyük istemci bağımlılığı"(şu anda 30 KB boyutunda, küçültülmüş ve paketlenmiş). Web geliştirmedeki çeşitli eğilimler, jQuery'nin önemli bir araç olarak konumunu zayıflattı.

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. web standartları içinde Web Köprü Metni Uygulama Teknolojisi Çalışma Grubu.
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. sürekli savaş birlikte. Buna göre tarayıcı API'leri yeni yetenekler kazandı. Örneğin, API getir Ajax işlevlerini jQuery'den değiştirebilir:

// 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 sorgu seçici и sorguSelectorTümü yinelenen jQuery seçicileri:

// 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: sınıf listesi:

// jQuery
$('#warning').toggleClass('visible');

// native
document.querySelector('#warning').classList.toggle('visible');

Site jQuery'ye ihtiyacınız olmayabilir Aşağıda jQuery kodunun yerel kodla değiştirilebileceği birkaç durum daha verilmiştir. Bazı geliştiriciler her zaman jQuery'ye bağlı kalıyor çünkü yeni API'ler hakkında bilgi sahibi değiller, ancak öğrendiklerinde kütüphaneyi daha az kullanmaya başlıyorlar.

Yerel özelliklerin kullanılması sayfa performansını artırır. Birçok jQuery'den animasyon efektleri şimdi uygulayabilirsiniz çok daha etkili CSS kullanarak.

İkinci neden ise tarayıcıların eskisinden çok daha hızlı güncellenmesidir. Çoğu kullanıyor "her zaman yeşil" yenileme stratejisi, Apple Safari hariç. Kullanıcı müdahalesi olmadan arka planda güncellenebilirler ve işletim sistemi güncellemelerine bağlı değildirler.

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. Kullanabilirmiyim kabul edilebilir seviyeye ulaşacaktır. JQuery veya polyfills indirmeye gerek kalmadan yeni özellikleri ve API'leri güvenle kullanabilirler.

Üçü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ı. desteklemeyi bırakma onuncu ve önceki sürümler, IE 11 desteğiyle sınırlıdır. Web geliştiricileri giderek IE uyumluluğunu göz ardı etme lüksüne sahip oluyor.

JQuery bile IE 8 ve aşağısını desteklemeyi bıraktı versiyon 2.0, 2013 yılında yayınlandı. Ve bazı durumlarda, örneğin eski sitelerde IE desteği hala gerekli olsa da, bu durumlar giderek daha az sıklıkta ortaya çıkıyor.

Yeni çerçeveler

jQuery'nin ortaya çıkışından bu yana, modern liderler de dahil olmak üzere birçok çerçeve oluşturuldu. React, Açısal и Görünüm. JQuery'e göre iki önemli avantajları vardır.

İ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; AXIOS Ajax için veya Animate.css animasyonlar için. Bu, küçük bir işlevsellik için tüm jQuery'yi yüklemekten daha kolay olacaktır.

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 aktif olarak gelişenve birçok geliştirici, yerel yöntemler mevcut olsa bile API'sini kullanmayı tercih ediyor. Kütüphane, tüm nesil geliştiricilerin herhangi bir tarayıcıda çalışan web siteleri oluşturmasına yardımcı oldu. Pek çok açıdan yerini yeni kütüphaneler, çerçeveler ve paradigmalar almış olsa da jQuery, modern web'in yaratılmasında son derece olumlu bir rol oynadı.

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

Yorum ekle