jQuery -
Аммо дар солҳои охир, мақоми он ҳамчун воситаи асосии рушди веб коҳиш ёфт. Биёед бубинем, ки чаро jQuery маъмул шуд ва чаро он аз мӯд берун шуд ва инчунин дар кадом ҳолатҳо ҳоло ҳам барои сохтани вебсайтҳои муосир истифода бурдани он тавсия дода мешавад.
Таърихи мухтасари 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');
Бо мурури замон механизми интихоб ба китобхонаи алохида табдил ёфт
Бартарии дуюми китобхона дар он буд, ки он фарқияти байни браузерҳоро абстрактӣ мекард. Дар он солҳо навиштани коде душвор буд, ки дар ҳама браузерҳо боэътимод кор кунад.
Набудани стандартизатсия маънои онро дошт, ки таҳиягарон бояд фарқиятҳои сершумори байни браузерҳо ва ҳолатҳои канориро ҳисоб кунанд. Ба назар гиред
// 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 ба ин бовар дорад
Назорати таҳияи jQuery низ расман бештар шудааст. Дар соли 2011 даста
Дар соли 2015, Бунёди jQuery бо Бунёди Dojo муттаҳид шуд,
Тағйир додани шароит
Бо вуҷуди ин, дар солҳои охир jQuery
Браузерҳо
Бо як қатор сабабҳо, фарқиятҳо ва маҳдудиятҳои браузер аҳамияти камтар пайдо карданд. Якум, стандартизатсия такмил ёфт. Таҳиягарони асосии браузер (Apple, Google, Microsoft ва Mozilla) барои таҳияи якҷоя кор мекунанд
Гарчанде ки браузерҳо то ҳол аз ҳамдигар бо як қатор роҳҳои муҳим фарқ мекунанд, фурӯшандагон ҳадди аққал як воситаи ҷустуҷӯ ва эҷоди пойгоҳи додаҳои умумиро доранд.
// 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);
});
Усулҳо
// jQuery
const fooDivs = $('.foo div');
// native
const fooDivs = document.querySelectorAll('.foo div');
Ҳоло шумо метавонед бо истифода аз синфҳои элементҳо идора кунед
// jQuery
$('#warning').toggleClass('visible');
// native
document.querySelector('#warning').classList.toggle('visible');
Дар сомона
Истифодаи хусусиятҳои аслӣ иҷрои саҳифаро беҳтар мекунад. Бисьёр
Сабаби дуюм ин аст, ки браузерҳо нисбат ба пештара хеле зудтар нав карда мешаванд. Аксари онҳо истифода мебаранд
Ин маънои онро дорад, ки хусусиятҳои нави браузер ва ислоҳи хатогиҳо хеле зудтар паҳн мешаванд ва таҳиягарон набояд интизор шаванд, ки
Сабаби сеюм ин аст, ки Internet Explorer ба ҳолати комилан номатлуб наздик мешавад. IE муддати тӯлонӣ сабаби рушди веб дар саросари ҷаҳон буд. Хатогиҳои он васеъ паҳн шуда буданд ва азбаски IE дар солҳои 2000-ум бартарӣ дошт ва стратегияи навсозии ҳамешасабзро истифода намебурд, версияҳои кӯҳна то ҳол маъмуланд.
Дар соли 2016, Microsoft қатъ кардани IE-ро суръат бахшид,
Ҳатто jQuery дастгирии IE 8 ва поёнтарро аз он қатъ кард
Чаҳорчӯбаҳои нав
Аз замони пайдоиши jQuery, чаҳорчӯбаҳои зиёде, аз ҷумла пешвоёни муосир сохта шудаанд
Аввалан, онҳо ҷудо кардани интерфейси корбарро ба ҷузъҳо осон мекунанд. Чаҳорчӯбаҳо барои коркард ва навсозии саҳифа тарҳрезӣ шудаанд. Ва jQuery одатан танҳо барои навсозӣ истифода мешавад ва вазифаи пешниҳоди саҳифаи аввалро ба сервер мегузорад.
Аз тарафи дигар, ҷузъҳои React, Angular ва Vue ба шумо имкон медиҳанд, ки HTML, код ва ҳатто CSS-ро зич пайваст кунед. Ҳамон тавре ки мо заминаи кодро ба бисёр функсияҳо ва синфҳои мустақил тақсим мекунем, қобилияти тақсим кардани интерфейс ба ҷузъҳои дубора истифодашаванда сохтан ва нигоҳдории сайтҳои мураккабро осон мекунад.
Бартарии дуюм дар он аст, ки чаҳорчӯбаҳои навтарин ба парадигмаи декларативӣ мувофиқат мекунанд, ки дар он таҳиякунанда тавсиф мекунад, ки интерфейс бояд чӣ гуна бошад ва онро ба чаҳорчӯба вогузорад, то ҳама тағиротҳои заруриро барои ноил шудан ба он чизе, ки дилхоҳ аст, ворид кунад. Ин равиш хилофи равиши императивӣ мебошад, ки рамзи jQuery-ро тавсиф мекунад.
Дар jQuery, шумо қадамҳои ворид кардани тағиротро ба таври возеҳ нависед. Ва дар чаҳорчӯбаи декларативӣ шумо мегӯед: "Мувофиқи ин маълумот, интерфейс бояд чунин бошад." Ин метавонад навиштани рамзи бе хатогиро хеле осон кунад.
Таҳиягарон равишҳои навро барои таҳияи вебсайтҳо қабул карданд, аз ин рӯ маъруфияти jQuery коҳиш ёфтааст.
jQuery кай истифода мешавад?
Пас, кай бояд jQuery истифода баред?
Агар мураккабии лоиҳа афзоиш ёбад, беҳтар аст, ки бо дигар китобхона ё чаҳорчӯба оғоз кунед, ки ба шумо имкон медиҳад мураккабиро пурмазмун идора кунед. Масалан, интерфейсро ба ҷузъҳо тақсим кунед. Истифодаи jQuery дар чунин сайтҳо метавонад дар аввал хуб ба назар расад, аммо он зуд ба рамзи спагетти оварда мерасонад, ки шумо намедонед, ки кадом порча ба кадом қисми саҳифа таъсир мерасонад.
Ман дар чунин вазъияте будам, ки ҳангоми кӯшиши ворид кардани ягон тағйирот, ин як кори душвор аст. Шумо боварӣ дошта наметавонед, ки шумо ҳеҷ чизро вайрон намекунед, зеро селекторҳои jQuery аз сохтори HTML аз ҷониби сервер тавлидшуда вобастаанд.
Дар охири дигари миқёс сайтҳои оддӣ ҳастанд, ки танҳо каме интерактивӣ ё мундариҷаи динамикӣ талаб мекунанд. Ман ҳам дар ин мавридҳо ба jQuery пешфарз намехоҳам, зеро шумо метавонед бо API-ҳои ватанӣ корҳои зиёдеро анҷом диҳед.
Ҳатто агар ба ман чизи пурқувваттар лозим бошад, ман китобхонаи махсусро ҷустуҷӯ мекунам, масалан.
Ман фикр мекунам, ки беҳтарин асос барои истифодаи jQuery он аст, ки он функсияҳои ҳамаҷонибаро барои қисми пеши вебсайт таъмин мекунад. Ба ҷои омӯхтани API-ҳои гуногуни маҳаллӣ ё китобхонаҳои махсус, шумо метавонед танҳо ҳуҷҷатҳои jQuery-ро хонед ва фавран самаранок шавед.
Равиши императивӣ васеъ нест, аммо омӯхтани он нисбат ба равиши декларативии китобхонаҳои дигар осонтар аст. Барои сайте, ки имкониятҳои ба таври равшан маҳдуд доранд, беҳтар аст, ки jQuery-ро истифода баред ва оромона кор кунед: китобхона васлкунӣ ё компиляцияи мураккабро талаб намекунад.
Илова бар ин, jQuery хуб аст, агар шумо боварӣ дошта бошед, ки сайти шумо бо мурури замон мураккаб нахоҳад шуд ва агар шумо ба функсияҳои ватанӣ аҳамият надиҳед, ки ин бешубҳа навиштани рамзи бештарро нисбат ба jQuery талаб мекунад.
Шумо инчунин метавонед ин китобхонаро истифода баред, агар ба шумо лозим аст, ки версияҳои кӯҳнаи IE-ро дастгирӣ кунед. Он гоҳ jQuery ба шумо мисли он замоне, ки IE браузери маъмултарин буд, хидмат хоҳад кард.
Дар оянда ба назар мерасад
jQuery ба зудӣ нест намешавад. Вай
Агар функсияи jQuery ба таври назаррас тағир наёбад, эҳтимол дорад, ки истифодаи китобхона дар тӯли чанд соли оянда оҳиста, вале устуворона коҳиш ёбад. Вебсайтҳои нав одатан аз аввал бо истифода аз чаҳорчӯбаҳои муосиртар сохта мешаванд ва ҳолатҳои мувофиқ барои jQuery торафт камёб мешаванд.
Баъзе одамон суръати кӯҳна шудани абзорҳои таҳияи вебро дӯст намедоранд, аммо барои ман ин далели пешрафти босуръат аст. jQuery ба мо имкон дод, ки бисёр чизҳоро беҳтар кунем. Ба ворисони ӯ низ ҳамин чиз дахл дорад.
Манбаъ: will.com