jQuery tarixi va merosi

jQuery tarixi va merosi
jQuery - bu eng mashhuri dunyoda JavaScript kutubxonasi. Veb-ishlab chiqish hamjamiyati uni 2000-yillarning oxirida yaratdi, natijada jQuery-dan foydalangan holda saytlar, plaginlar va ramkalarning boy ekotizimiga ega bo'ldi.

Ammo so'nggi yillarda uning veb-ishlab chiqish uchun asosiy vosita sifatidagi maqomi yo'qoldi. Keling, jQuery nima uchun mashhur bo'lganini va nima uchun u modadan chiqib ketganini, shuningdek, qaysi hollarda zamonaviy veb-saytlarni yaratish uchun undan foydalanish tavsiya etilishini ko'rib chiqaylik.

jQuery ning qisqacha tarixi

Jon Resig (Jon Resig) kutubxonaning birinchi versiyasini 2005 yilda yaratgan va 2006 yilda nashr etilgan-m, BarCampNYC deb nomlangan tadbirda. Yoniq jQuery rasmiy veb-sayti muallif yozgan:

jQuery - Javascript kutubxonasi shioriga asoslangan: Javascriptni kodlash qiziqarli bo'lishi kerak. jQuery umumiy, takrorlanuvchi vazifalarni oladi, barcha keraksiz belgilarni olib tashlaydi va ularni qisqa, oqlangan va toza qiladi.

jQuery ikkita asosiy afzalliklarga ega. Birinchisi, veb-sahifalarni boshqarish uchun qulay API. Xususan, u elementlarni tanlashning kuchli usullarini taqdim etadi. Siz nafaqat identifikator yoki sinf bo'yicha tanlashingiz mumkin, jQuery sizga murakkab iboralarni yozish imkonini beradi, masalan, elementlarni boshqa elementlar bilan munosabatlariga qarab tanlash:

// Select every item within the list of people within the contacts element
$('#contacts ul.people li');

Vaqt o'tishi bilan tanlov mexanizmi alohida kutubxonaga aylandi Sizzle.

Kutubxonaning ikkinchi afzalligi shundaki, u brauzerlar orasidagi farqlarni mavhumlashtirdi. O'sha yillarda barcha brauzerlarda ishonchli ishlay oladigan kod yozish qiyin edi.

Standartlashtirishning yo'qligi ishlab chiquvchilar brauzerlar va chekka holatlar o'rtasidagi ko'plab farqlarni hisobga olishlari kerakligini anglatardi. Ko'rib chiqing bu dastlabki jQuery manba kodi va jQuery.browser ni qidiring. Mana bir misol:

// 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);
}

Va jQuery tufayli ishlab chiquvchilar ushbu barcha tuzoqlar haqidagi tashvishlarni kutubxonani ishlab chiquvchi jamoaning yelkasiga yuklashlari mumkin edi.

Keyinchalik jQuery animatsiyalar va Ajax kabi murakkabroq texnologiyalarni amalga oshirishni osonlashtirdi. Kutubxona samarali veb-saytlar uchun standart bog'liqlikka aylandi. Va bugungi kunda u Internetning katta qismini quvvatlaydi. W3Techs bunga ishonadi Bugungi kunda saytlarning 74% jQuery-dan foydalanadi.

JQuery-ni ishlab chiqish ustidan nazorat ham rasmiylashtirildi. 2011 yilda jamoa jQuery Board yaratildi. Va 2012 yilda jQuery Board jQuery Foundation ga aylantirildi.

2015 yilda jQuery Foundation Dojo Foundation bilan birlashdi. JS Foundation yaratish, keyin Node.js Foundation bilan birlashtirildi 2019-m yaratish OpenJS jamg'armasi, uning ichida jQuery "yutuq loyihalari. "

O'zgaruvchan sharoitlar

Biroq, so'nggi yillarda jQuery mashhurligini yo'qotdi. GitHub kutubxonani saytimning old qismidan olib tashladim. Bootstrap v5 jQuery'dan xalos bo'lingchunki bu uniki"oddiy JavaScript uchun eng katta mijoz bog'liqligi"(hozirda hajmi 30 KB, kichiklashtirilgan va qadoqlangan). Veb-ishlab chiqishdagi bir qancha tendentsiyalar jQuery-ning muhim vosita sifatidagi mavqeini zaiflashtirdi.

Brauzerlar

Bir qator sabablarga ko'ra brauzerdagi farqlar va cheklovlar ahamiyatsiz bo'lib qoldi. Birinchidan, standartlashtirish yaxshilandi. Yirik brauzer ishlab chiquvchilari (Apple, Google, Microsoft va Mozilla) birgalikda ishlamoqda veb standartlari doirasida Web gipermatnli ilovalar texnologiyasi ishchi guruhi.
Brauzerlar hali ham bir-biridan bir qancha muhim jihatlari bilan farq qilsa-da, ishlab chiqaruvchilar hech bo'lmaganda umumiy ma'lumotlar bazasini qidirish va yaratish vositalariga ega. doimiy urush bir-biri bilan. Shunga ko'ra, brauzer API-lari yangi imkoniyatlarga ega bo'ldi. Masalan, API olish jQuery'dan Ajax funktsiyalarini almashtirishga qodir:

// 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);
    });

Usullari querySelector и querySelectorAll dublikat jQuery tanlovchilari:

// jQuery
const fooDivs = $('.foo div');

// native
const fooDivs = document.querySelectorAll('.foo div');

Endi siz element sinflarini yordamida boshqarishingiz mumkin sinflar ro'yxati:

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

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

Saytda Sizga jQuery kerak emas Bu erda jQuery kodini mahalliy kod bilan almashtirish mumkin bo'lgan yana bir nechta holatlar mavjud. Ba'zi ishlab chiquvchilar har doim jQuery-ni qo'llab-quvvatlaydilar, chunki ular yangi API-lar haqida bilishmaydi, lekin ular bilganlarida, ular kutubxonadan kamroq foydalanishni boshlaydilar.

Mahalliy xususiyatlardan foydalanish sahifa ish faoliyatini yaxshilaydi. Ko'pchilik jQuery'dan animatsiya effektlari endi siz amalga oshirishingiz mumkin ancha samarali CSS yordamida.

Ikkinchi sabab, brauzerlar avvalgidan ancha tez yangilanadi. Ularning ko'pchiligi foydalanadi “Doim yashil” yangilanish strategiyasi, Apple Safari bundan mustasno. Ular foydalanuvchi ishtirokisiz fonda yangilanishi mumkin va OS yangilanishlari bilan bog'lanmaydi.

Bu shuni anglatadiki, yangi brauzer funktsiyalari va xatolarni tuzatish tezroq tarqatiladi va ishlab chiquvchilarga kutish kerak emas. Foydalanishingiz mumkinmi? maqbul darajaga etadi. Ular jQuery yoki polifilllarni yuklab olmasdan yangi xususiyatlar va API-lardan ishonchli foydalanishlari mumkin.

Uchinchi sabab - Internet Explorer to'liq ahamiyatsiz holatga yaqinlashmoqda. IE uzoq vaqtdan beri butun dunyo bo'ylab veb-ishlab chiqishning balosi bo'lib kelgan. Uning xatolari keng tarqalgan edi va IE 2000-yillarda hukmronlik qilgani va doimiy yangilanish strategiyasidan foydalanmaganligi sababli, eski versiyalar hali ham keng tarqalgan.

2016 yilda Microsoft IEni o'chirishni tezlashtirdi, qo'llab-quvvatlashni to'xtatadi o'ninchi va oldingi versiyalar IE 11 ni qo'llab-quvvatlashni cheklaydi. Va tobora ko'proq veb-ishlab chiquvchilar IE mosligini e'tiborsiz qoldirish hashamatiga ega.

Hatto jQuery IE 8 va undan past versiyalarni qo'llab-quvvatlashni to'xtatdi 2.0 versiyasi, 2013 yilda nashr etilgan. Va ba'zi hollarda IE-ni qo'llab-quvvatlash hali ham talab qilinsa ham, masalan, eski saytlarda, bu holatlar kamroq va kamroq paydo bo'ladi.

Yangi ramkalar

JQuery paydo bo'lganidan beri ko'plab ramkalar, jumladan, zamonaviy liderlar yaratildi munosabat, burchak и Vue. Ular jQuery-ga nisbatan ikkita muhim afzalliklarga ega.

Birinchidan, ular foydalanuvchi interfeysini tarkibiy qismlarga ajratishni osonlashtiradi. Ramkalar sahifalarni ko'rsatish va yangilash uchun mo'ljallangan. Va jQuery odatda serverga dastlabki sahifani taqdim etish vazifasini qoldirib, faqat yangilash uchun ishlatiladi.

Boshqa tomondan, React, Angular va Vue komponentlari sizga HTML, kod va hatto CSS-ni mahkam bog'lash imkonini beradi. Kod bazasini ko'plab mustaqil funktsiyalar va sinflarga ajratganimiz kabi, interfeysni qayta foydalanish mumkin bo'lgan komponentlarga bo'lish qobiliyati murakkab saytlarni yaratish va saqlashni osonlashtiradi.

Ikkinchi afzallik shundaki, yangiroq ramkalar deklarativ paradigmaga amal qiladi, unda ishlab chiquvchi interfeys qanday ko'rinishini tavsiflaydi va kerakli narsaga erishish uchun barcha kerakli o'zgarishlarni amalga oshirish uchun uni ramkaga qoldiradi. Ushbu yondashuv jQuery kodini tavsiflovchi imperativ yondashuvga ziddir.

JQuery-da siz har qanday o'zgarishlarni amalga oshirish bosqichlarini aniq yozasiz. Va deklarativ tizimda siz: "Ushbu ma'lumotlarga ko'ra, interfeys shunday bo'lishi kerak" deysiz. Bu xatosiz kod yozishni ancha osonlashtirishi mumkin.

Ishlab chiquvchilar veb-saytlarni ishlab chiqishda yangi yondashuvlarni o'zlashtirdilar, shuning uchun jQuery mashhurligi pasaydi.

JQuery-dan qachon foydalanish kerak?

Xo'sh, qachon bo'lishi kerak jQuery-dan foydalanasizmi?

Agar loyihaning murakkabligi oshsa, unda murakkablikni mazmunli boshqarishga imkon beradigan boshqa kutubxona yoki ramkadan boshlash yaxshidir. Masalan, interfeysni komponentlarga ajrating. Bunday saytlarda jQuery-dan foydalanish dastlab yaxshi ko'rinishi mumkin, ammo bu tezda spagetti kodiga olib keladi va siz qaysi fragment sahifaning qaysi qismiga ta'sir qilishiga ishonchingiz komil emas.

Men shunday vaziyatda bo'lganman, har qanday o'zgarishga harakat qilganda, bu qiyin vazifadek tuyuladi. Hech narsani buzmasligingizga ishonchingiz komil emas, chunki jQuery selektorlari server tomonidan yaratilgan HTML tuzilishiga bog'liq.

O'lchovning boshqa uchida faqat bir oz interaktivlik yoki dinamik tarkibni talab qiladigan oddiy saytlar mavjud. Bu holatlarda ham jQuery-ni sukut saqlamayman, chunki mahalliy API-lar bilan ko'p narsalarni qilishingiz mumkin.

Agar menga kuchliroq narsa kerak bo'lsa ham, men ixtisoslashgan kutubxonani qidiraman, masalan. aksios Ajax uchun yoki Animate.css animatsiyalar uchun. Bu kichik funksionallik uchun barcha jQuery-ni yuklashdan ko'ra osonroq bo'ladi.

Menimcha, jQuery-dan foydalanishning eng yaxshi asosi bu veb-saytning old tomoni uchun keng qamrovli funksionallikni ta'minlaydi. Turli xil mahalliy API yoki ixtisoslashtirilgan kutubxonalarni o'rganish o'rniga, siz jQuery hujjatlarini o'qib, bir zumda samarali bo'lishingiz mumkin.

Imperativ yondashuv yaxshi miqyosda emas, lekin uni o'rganish boshqa kutubxonalarning deklarativ yondashuviga qaraganda osonroq. Imkoniyatlari aniq cheklangan sayt uchun jQuery-dan foydalanish va xotirjam ishlash yaxshiroqdir: kutubxona murakkab yig'ilish yoki kompilyatsiyani talab qilmaydi.

Bundan tashqari, agar saytingiz vaqt o'tishi bilan murakkablashmasligiga ishonchingiz komil bo'lsa va jQuery-dan ko'ra ko'proq kod yozishni talab qiladigan mahalliy funksionallik haqida qayg'urmasangiz, jQuery yaxshi.

IE ning eski versiyalarini qo'llab-quvvatlashingiz kerak bo'lsa, ushbu kutubxonadan ham foydalanishingiz mumkin. Keyin jQuery sizga IE eng mashhur brauzer bo'lgan kunlardagi kabi xizmat qiladi.

Kelajakka qarash

jQuery tez orada yo'qolmaydi. U faol rivojlanmoqda, va ko'plab ishlab chiquvchilar mahalliy usullar mavjud bo'lsa ham, uning API-dan foydalanishni afzal ko'rishadi. Kutubxona ishlab chiquvchilarning butun avlodiga har qanday brauzerda ishlaydigan veb-saytlarni yaratishga yordam berdi. Garchi u ko'p jihatdan yangi kutubxonalar, ramkalar va paradigmalar bilan almashtirilgan bo'lsa-da, jQuery zamonaviy vebni yaratishda juda ijobiy rol o'ynadi.

Agar jQuery funksionalligi sezilarli darajada o'zgarmasa, kutubxonadan foydalanish keyingi bir necha yil ichida asta-sekin, lekin barqaror ravishda pasayishda davom etishi mumkin. Yangi veb-saytlar boshidanoq zamonaviyroq ramkalar yordamida quriladi va jQuery uchun mos foydalanish holatlari tobora kamaymoqda.

Ba'zi odamlar veb-ishlab chiqish vositalarining eskirish tezligini yoqtirmaydi, lekin men uchun bu tez rivojlanishdan dalolat beradi. jQuery bizga ko'p narsalarni yaxshiroq qilish imkonini berdi. Xuddi shu narsa uning vorislari uchun ham amal qiladi.

Manba: www.habr.com

a Izoh qo'shish