jQuery -
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 (
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
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
// 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
JQuery-ni ishlab chiqish ustidan nazorat ham rasmiylashtirildi. 2011 yilda jamoa
2015 yilda jQuery Foundation Dojo Foundation bilan birlashdi.
O'zgaruvchan sharoitlar
Biroq, so'nggi yillarda jQuery
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
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.
// 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
// jQuery
const fooDivs = $('.foo div');
// native
const fooDivs = document.querySelectorAll('.foo div');
Endi siz element sinflarini yordamida boshqarishingiz mumkin
// jQuery
$('#warning').toggleClass('visible');
// native
document.querySelector('#warning').classList.toggle('visible');
Saytda
Mahalliy xususiyatlardan foydalanish sahifa ish faoliyatini yaxshilaydi. Ko'pchilik
Ikkinchi sabab, brauzerlar avvalgidan ancha tez yangilanadi. Ularning ko'pchiligi foydalanadi
Bu shuni anglatadiki, yangi brauzer funktsiyalari va xatolarni tuzatish tezroq tarqatiladi va ishlab chiquvchilarga kutish kerak emas.
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,
Hatto jQuery IE 8 va undan past versiyalarni qo'llab-quvvatlashni to'xtatdi
Yangi ramkalar
JQuery paydo bo'lganidan beri ko'plab ramkalar, jumladan, zamonaviy liderlar yaratildi
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.
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
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