Таърих ва мероси jQuery

Таърих ва мероси jQuery
jQuery - ин маъмултарин аст дар ҷаҳон китобхонаи JavaScript. Ҷамъияти таҳияи веб онро дар охири солҳои 2000-ум эҷод кард, ки дар натиҷа экосистемаи бойи сайтҳо, плагинҳо ва чаҳорчӯбаҳоро бо истифода аз jQuery зери сарпӯш ба вуҷуд овард.

Аммо дар солҳои охир, мақоми он ҳамчун воситаи асосии рушди веб коҳиш ёфт. Биёед бубинем, ки чаро jQuery маъмул шуд ва чаро он аз мӯд берун шуд ва инчунин дар кадом ҳолатҳо ҳоло ҳам барои сохтани вебсайтҳои муосир истифода бурдани он тавсия дода мешавад.

Таърихи мухтасари jQuery

Ҷон Ресиг (Ҷон Ресиг) нусхаи аввалини китобхонаро соли 2005 офаридааст ва дар соли 2006 нашр шудааст-m, дар як чорабинӣ бо номи BarCampNYC. Дар бораи Вебсайти расмии jQuery муаллиф навиштааст:

jQuery китобхонаи Javascript аст, ки ба шиор асос ёфтааст: Javascript бояд рамзгузорӣ кардан шавқовар бошад. jQuery вазифаҳои умумӣ ва такроршавандаро мегирад, ҳама аломатҳои нолозимро нест мекунад ва онҳоро кӯтоҳ, шево ва тоза мекунад.

jQuery ду бартарии асосӣ дорад. Якум API-и қулай барои коркарди саҳифаҳои веб мебошад. Аз ҷумла, он усулҳои пурқуввати интихоби элементҳоро пешниҳод мекунад. На танҳо шумо метавонед аз рӯи ID ё синф интихоб кунед, jQuery ба шумо имкон медиҳад, ки ифодаҳои мураккаб нависед, масалан, элементҳоро дар асоси муносибатҳои онҳо бо унсурҳои дигар интихоб кунед:

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

Бо мурури замон механизми интихоб ба китобхонаи алохида табдил ёфт Sizzle.

Бартарии дуюми китобхона дар он буд, ки он фарқияти байни браузерҳоро абстрактӣ мекард. Дар он солҳо навиштани коде душвор буд, ки дар ҳама браузерҳо боэътимод кор кунад.

Набудани стандартизатсия маънои онро дошт, ки таҳиягарон бояд фарқиятҳои сершумори байни браузерҳо ва ҳолатҳои канориро ҳисоб кунанд. Ба назар гиред ин рамзи ибтидоии jQuery ва ҷустуҷӯи jQuery.browser. Инак як мисол:

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

Ва ба шарофати jQuery, таҳиягарон метавонистанд нигарониро дар бораи ҳамаи ин домҳо ба дӯши дастаи таҳиякунандаи китобхона гузоранд.

Баъдтар, jQuery татбиқи технологияҳои мураккабтарро ба монанди аниматсияҳо ва Ajax осонтар кард. Китобхона ба таври муассир ба як вобастагии стандартии вебсайтҳо табдил ёфтааст. Ва имрӯз он ҳиссаи бузурги Интернетро таъмин мекунад. W3Techs ба ин бовар дорад 74% сайтҳо имрӯз jQuery-ро истифода мебаранд.

Назорати таҳияи jQuery низ расман бештар шудааст. Дар соли 2011 даста Шӯрои jQuery сохта шудааст. Ва дар соли 2012 Шӯрои jQuery ба Фонди jQuery табдил ёфт.

Дар соли 2015, Бунёди jQuery бо Бунёди Dojo муттаҳид шуд, бунёди Фонди JS, ки баъдан бо Node.js Foundation муттаҳид карда шуд 2019-м эҷод кардан Бунёди OpenJS, ки дар дохили он jQuery яке аз "лоиҳаҳои пешрафта. "

Тағйир додани шароит

Бо вуҷуди ин, дар солҳои охир jQuery маъруфияти худро аз даст дод. GitHub китобхонаро аз фронти сайти ман хориҷ кард. Bootstrap v5 аз jQuery халос шаведзеро он ӯст"бузургтарин вобастагии муштарӣ аз JavaScript муқаррарӣ"(дар айни замон андозаи 30 KB, хурдтар ва басташуда). Якчанд тамоюлҳои рушди веб мавқеи jQuery-ро ҳамчун воситаи муҳим заиф карданд.

Браузерҳо

Бо як қатор сабабҳо, фарқиятҳо ва маҳдудиятҳои браузер аҳамияти камтар пайдо карданд. Якум, стандартизатсия такмил ёфт. Таҳиягарони асосии браузер (Apple, Google, Microsoft ва Mozilla) барои таҳияи якҷоя кор мекунанд стандартҳои веб дар доираи Гурӯҳи кории Технологияи Барномаҳои Веб Гиперматн.
Гарчанде ки браузерҳо то ҳол аз ҳамдигар бо як қатор роҳҳои муҳим фарқ мекунанд, фурӯшандагон ҳадди аққал як воситаи ҷустуҷӯ ва эҷоди пойгоҳи додаҳои умумиро доранд. ҷанги доимӣ якҷоя. Мувофиқи он, API-ҳои браузер қобилиятҳои нав пайдо карданд. Масалан, Гирифтани API қодир ба иваз кардани функсияҳои Ajax аз jQuery:

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

Усулҳо querySelector и querySelectorAll интихобкунандагони такрории jQuery:

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

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

Ҳоло шумо метавонед бо истифода аз синфҳои элементҳо идора кунед Рӯйхати синф:

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

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

Дар сомона Шояд ба шумо jQuery лозим набошад Инҳоянд чанд ҳолатҳои дигар, ки дар он рамзи jQuery метавонад бо рамзи аслӣ иваз карда шавад. Баъзе таҳиягарон ҳамеша бо jQuery пайваст мешаванд, зеро онҳо дар бораи API-ҳои нав намедонанд, аммо вақте ки онҳо ин корро мекунанд, онҳо аз китобхона камтар истифода мебаранд.

Истифодаи хусусиятҳои аслӣ иҷрои саҳифаро беҳтар мекунад. Бисьёр эффектҳои аниматсия аз jQuery акнун шумо метавонед амалӣ кунед хеле самараноктар бо истифода аз CSS.

Сабаби дуюм ин аст, ки браузерҳо нисбат ба пештара хеле зудтар нав карда мешаванд. Аксари онҳо истифода мебаранд стратегияи навсозии «ҳамешасабз»., ба истиснои Apple Safari. Онҳо метавонанд дар замина бе иштироки корбар навсозӣ шаванд ва ба навсозиҳои OS алоқаманд нестанд.

Ин маънои онро дорад, ки хусусиятҳои нави браузер ва ислоҳи хатогиҳо хеле зудтар паҳн мешаванд ва таҳиягарон набояд интизор шаванд, ки Оё ман метавонам истифода кунам ба дарачаи кобили кабул хохад расид. Онҳо метавонанд боварӣ ҳосил кунанд, ки хусусиятҳо ва API-ҳои навро бе зеркашии jQuery ё polyfills истифода баранд.

Сабаби сеюм ин аст, ки Internet Explorer ба ҳолати комилан номатлуб наздик мешавад. IE муддати тӯлонӣ сабаби рушди веб дар саросари ҷаҳон буд. Хатогиҳои он васеъ паҳн шуда буданд ва азбаски IE дар солҳои 2000-ум бартарӣ дошт ва стратегияи навсозии ҳамешасабзро истифода намебурд, версияҳои кӯҳна то ҳол маъмуланд.

Дар соли 2016, Microsoft қатъ кардани IE-ро суръат бахшид, бас кардани дастгирй версияҳои даҳум ва қаблӣ, ки дастгирӣ ба IE 11-ро маҳдуд мекунанд. Ва торафт бештар таҳиягарони веб ҳашамати нодида гирифтани мутобиқати IE доранд.

Ҳатто jQuery дастгирии IE 8 ва поёнтарро аз он қатъ кард нусхаи 2.0, соли 2013 нашр шудааст. Ва гарчанде ки дар баъзе ҳолатҳо дастгирии IE то ҳол талаб карда мешавад, масалан, дар сайтҳои кӯҳна, ин ҳолатҳо камтар ва камтар ба вуҷуд меоянд.

Чаҳорчӯбаҳои нав

Аз замони пайдоиши jQuery, чаҳорчӯбаҳои зиёде, аз ҷумла пешвоёни муосир сохта шудаанд Натиҷа, Ақл и Vue. Онҳо нисбат ба jQuery ду бартарии муҳим доранд.

Аввалан, онҳо ҷудо кардани интерфейси корбарро ба ҷузъҳо осон мекунанд. Чаҳорчӯбаҳо барои коркард ва навсозии саҳифа тарҳрезӣ шудаанд. Ва jQuery одатан танҳо барои навсозӣ истифода мешавад ва вазифаи пешниҳоди саҳифаи аввалро ба сервер мегузорад.

Аз тарафи дигар, ҷузъҳои React, Angular ва Vue ба шумо имкон медиҳанд, ки HTML, код ва ҳатто CSS-ро зич пайваст кунед. Ҳамон тавре ки мо заминаи кодро ба бисёр функсияҳо ва синфҳои мустақил тақсим мекунем, қобилияти тақсим кардани интерфейс ба ҷузъҳои дубора истифодашаванда сохтан ва нигоҳдории сайтҳои мураккабро осон мекунад.

Бартарии дуюм дар он аст, ки чаҳорчӯбаҳои навтарин ба парадигмаи декларативӣ мувофиқат мекунанд, ки дар он таҳиякунанда тавсиф мекунад, ки интерфейс бояд чӣ гуна бошад ва онро ба чаҳорчӯба вогузорад, то ҳама тағиротҳои заруриро барои ноил шудан ба он чизе, ки дилхоҳ аст, ворид кунад. Ин равиш хилофи равиши императивӣ мебошад, ки рамзи jQuery-ро тавсиф мекунад.

Дар jQuery, шумо қадамҳои ворид кардани тағиротро ба таври возеҳ нависед. Ва дар чаҳорчӯбаи декларативӣ шумо мегӯед: "Мувофиқи ин маълумот, интерфейс бояд чунин бошад." Ин метавонад навиштани рамзи бе хатогиро хеле осон кунад.

Таҳиягарон равишҳои навро барои таҳияи вебсайтҳо қабул карданд, аз ин рӯ маъруфияти jQuery коҳиш ёфтааст.

jQuery кай истифода мешавад?

Пас, кай бояд jQuery истифода баред?

Агар мураккабии лоиҳа афзоиш ёбад, беҳтар аст, ки бо дигар китобхона ё чаҳорчӯба оғоз кунед, ки ба шумо имкон медиҳад мураккабиро пурмазмун идора кунед. Масалан, интерфейсро ба ҷузъҳо тақсим кунед. Истифодаи jQuery дар чунин сайтҳо метавонад дар аввал хуб ба назар расад, аммо он зуд ба рамзи спагетти оварда мерасонад, ки шумо намедонед, ки кадом порча ба кадом қисми саҳифа таъсир мерасонад.

Ман дар чунин вазъияте будам, ки ҳангоми кӯшиши ворид кардани ягон тағйирот, ин як кори душвор аст. Шумо боварӣ дошта наметавонед, ки шумо ҳеҷ чизро вайрон намекунед, зеро селекторҳои jQuery аз сохтори HTML аз ҷониби сервер тавлидшуда вобастаанд.

Дар охири дигари миқёс сайтҳои оддӣ ҳастанд, ки танҳо каме интерактивӣ ё мундариҷаи динамикӣ талаб мекунанд. Ман ҳам дар ин мавридҳо ба jQuery пешфарз намехоҳам, зеро шумо метавонед бо API-ҳои ватанӣ корҳои зиёдеро анҷом диҳед.

Ҳатто агар ба ман чизи пурқувваттар лозим бошад, ман китобхонаи махсусро ҷустуҷӯ мекунам, масалан. axios барои Ajax ё Animate.css барои аниматсияҳо. Ин назар ба боркунии ҳама jQuery барои функсияҳои хурд осонтар хоҳад буд.

Ман фикр мекунам, ки беҳтарин асос барои истифодаи jQuery он аст, ки он функсияҳои ҳамаҷонибаро барои қисми пеши вебсайт таъмин мекунад. Ба ҷои омӯхтани API-ҳои гуногуни маҳаллӣ ё китобхонаҳои махсус, шумо метавонед танҳо ҳуҷҷатҳои jQuery-ро хонед ва фавран самаранок шавед.

Равиши императивӣ васеъ нест, аммо омӯхтани он нисбат ба равиши декларативии китобхонаҳои дигар осонтар аст. Барои сайте, ки имкониятҳои ба таври равшан маҳдуд доранд, беҳтар аст, ки jQuery-ро истифода баред ва оромона кор кунед: китобхона васлкунӣ ё компиляцияи мураккабро талаб намекунад.

Илова бар ин, jQuery хуб аст, агар шумо боварӣ дошта бошед, ки сайти шумо бо мурури замон мураккаб нахоҳад шуд ва агар шумо ба функсияҳои ватанӣ аҳамият надиҳед, ки ин бешубҳа навиштани рамзи бештарро нисбат ба jQuery талаб мекунад.

Шумо инчунин метавонед ин китобхонаро истифода баред, агар ба шумо лозим аст, ки версияҳои кӯҳнаи IE-ро дастгирӣ кунед. Он гоҳ jQuery ба шумо мисли он замоне, ки IE браузери маъмултарин буд, хидмат хоҳад кард.

Дар оянда ба назар мерасад

jQuery ба зудӣ нест намешавад. Вай фаъолона инкишоф меёбанд, ва бисёре аз таҳиягарон истифодаи API-и онро бартарӣ медиҳанд, ҳатто агар усулҳои маҳаллӣ дастрас бошанд. Китобхона ба насли кулли таҳиягарон дар сохтани вебсайтҳое, ки дар ҳама гуна браузер кор мекунанд, кӯмак кардааст. Гарчанде ки он аз бисёр ҷиҳат бо китобхонаҳо, чаҳорчӯбаҳо ва парадигмаҳои нав иваз карда шудааст, jQuery дар эҷоди веби муосир нақши бениҳоят мусбат бозид.

Агар функсияи jQuery ба таври назаррас тағир наёбад, эҳтимол дорад, ки истифодаи китобхона дар тӯли чанд соли оянда оҳиста, вале устуворона коҳиш ёбад. Вебсайтҳои нав одатан аз аввал бо истифода аз чаҳорчӯбаҳои муосиртар сохта мешаванд ва ҳолатҳои мувофиқ барои jQuery торафт камёб мешаванд.

Баъзе одамон суръати кӯҳна шудани абзорҳои таҳияи вебро дӯст намедоранд, аммо барои ман ин далели пешрафти босуръат аст. jQuery ба мо имкон дод, ки бисёр чизҳоро беҳтар кунем. Ба ворисони ӯ низ ҳамин чиз дахл дорад.

Манбаъ: will.com

Илова Эзоҳ