{"id":38523,"date":"2019-10-31T22:24:17","date_gmt":"2019-10-31T19:24:17","guid":{"rendered":"https:\/\/prohoster.info\/blog\/istoriya-i-nasledie-jquery\/"},"modified":"2019-10-31T22:24:17","modified_gmt":"2019-10-31T19:24:17","slug":"istoriya-i-nasledie-jquery","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sk\/blog\/news\/istoriya-i-nasledie-jquery","title":{"rendered":"Hist\u00f3ria a dedi\u010dstvo jQuery","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Hist\u00f3ria a dedi\u010dstvo jQuery\" src=\"\/wp-content\/uploads\/2019\/10\/beb7b33761181e6b478031cf1b85e6c6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\njQuery \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/trends.builtwith.com\/javascript\/jQuery\">to najpopul\u00e1rnej\u0161ia<\/a><\/noindex> JavaScript kni\u017enica na svete. Komunita webov\u00fdch v\u00fdvoj\u00e1rov ju vytvorila na konci 2000-tych rokov, \u010do viedlo k vzniku bohat\u00e9ho ekosyst\u00e9mu webov\u00fdch str\u00e1nok, pluginov a r\u00e1mcov, ktor\u00e9 pou\u017e\u00edvaj\u00fa jQuery za oponou.<\/p>\n<p>Ale v posledn\u00fdch rokoch jej status hlavn\u00e9ho n\u00e1stroja pre webov\u00fd v\u00fdvoj oslabol. Po\u010fme sa pozrie\u0165, pre\u010do sa jQuery stala popul\u00e1rnou a pre\u010do u\u017e nie je v m\u00f3de, ako aj na pr\u00edpady, v ktor\u00fdch je st\u00e1le rozumn\u00e9 ju pou\u017e\u00edva\u0165 na vytv\u00e1ranie modern\u00fdch webov\u00fdch str\u00e1nok.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Kr\u00e1tka hist\u00f3ria jQuery<\/h2>\n<p>\nJohn Resig (<noindex><a rel=\"nofollow\" href=\"https:\/\/johnresig.com\/\">John Resig<\/a><\/noindex>) vytvoril prv\u00fa verziu kni\u017enice v roku 2005, a <noindex><a rel=\"nofollow\" href=\"https:\/\/johnresig.com\/blog\/barcampnyc-wrap-up\/\">publikoval v roku 2006<\/a><\/noindex>-om na podujat\u00ed nazvanom BarCampNYC. Na <noindex><a rel=\"nofollow\" href=\"https:\/\/web.archive.org\/web\/20060203025710\/http:\/\/jquery.com\/\">ofici\u00e1lnej webovej str\u00e1nke jQuery<\/a><\/noindex> autor nap\u00edsal:<\/p>\n<blockquote><p>jQuery \u2014 to je JavaScript kni\u017enica, ktorej z\u00e1kladn\u00fd princip znie: Programovanie v JavaScripte by malo by\u0165 pr\u00edjemn\u00e9. jQuery berie \u010dasto sa opakuj\u00face \u00falohy, odstra\u0148uje zbyto\u010dn\u00fa markup a rob\u00ed ich kr\u00e1tkymi, elegantn\u00fdmi a preh\u013eadn\u00fdmi.<\/p><\/blockquote>\n<p>\njQuery m\u00e1 dve hlavn\u00e9 v\u00fdhody. Prv\u00e1 \u2014 to je pohodln\u00e9 API na manipul\u00e1ciu s webov\u00fdmi str\u00e1nkami. Konkr\u00e9tne poskytuje mocn\u00e9 met\u00f3dy na v\u00fdber prvkov. M\u00f4\u017eete vybera\u0165 nielen pod\u013ea ID alebo tried, jQuery umo\u017e\u0148uje p\u00edsa\u0165 zlo\u017eit\u00e9 v\u00fdrazy, napr\u00edklad na z\u00e1klade vz\u0165ahov medzi in\u00fdmi prvkami:<\/p>\n<pre><code class=\"javascript\">\/\/ Select every item within the list of people within the contacts element\n$('#contacts ul.people li');<\/code><\/pre>\n<p>\nV priebehu \u010dasu sa mechanizmus v\u00fdberu stal samostatnou kni\u017enicou <noindex><a rel=\"nofollow\" href=\"https:\/\/sizzlejs.com\/\">Sizzle<\/a><\/noindex>.<\/p>\n<p>Druhou v\u00fdhodou kni\u017enice bolo to, \u017ee abstrahovala rozdiely medzi prehliada\u010dmi. V t\u00fdch \u010dasoch bolo \u0165a\u017ek\u00e9 p\u00edsa\u0165 k\u00f3d, ktor\u00fd by spo\u013eahlivo fungoval vo v\u0161etk\u00fdch prehliada\u010doch. <\/p>\n<p>Nedostatok \u0161tandardiz\u00e1cie znamenal, \u017ee v\u00fdvoj\u00e1ri museli bra\u0165 do \u00favahy mnoh\u00e9 rozdiely medzi prehliada\u010dmi a okrajov\u00e9 pr\u00edpady. Pozrite sa na <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/daniellmb\/jquery-archive\/blob\/master\/jquery.2006-07-01.js\">tento ran\u00fd zdrojov\u00fd k\u00f3d jQuery<\/a><\/noindex> a h\u013eadajte jQuery.browser. Tu je jeden z pr\u00edkladov:<\/p>\n<pre><code class=\"javascript\">\/\/ If Mozilla is used\nif ( jQuery.browser == \"mozilla\" || jQuery.browser == \"opera\" ) {\n        \/\/ Use the handy event callback\n        jQuery.event.add( document, \"DOMContentLoaded\", jQuery.ready );\n\n\/\/ If IE is used, use the excellent hack by Matthias Miller\n\/\/ http:\/\/www.outofhanwell.com\/blog\/index.php?title=the_window_onload_problem_revisited\n} else if ( jQuery.browser == \"msie\" ) {\n\n        \/\/ Only works if you document.write() it\n        document.write(\"&lt;scr\" + \"ipt id=__ie_init defer=true \" + \n                \"src=javascript:void(0)&gt;&lt;\/script&gt;\");\n\n        \/\/ Use the defer script hack\n        var script = document.getElementById(\"__ie_init\");\n        script.onreadystatechange = function() {\n                if ( this.readyState == \"complete\" )\n                        jQuery.ready();\n        };\n\n        \/\/ Clear from memory\n        script = null;\n\n\/\/ If Safari  is used\n} else if ( jQuery.browser == \"safari\" ) {\n        \/\/ Continually check to see if the document.readyState is valid\n        jQuery.safariTimer = setInterval(function(){\n                \/\/ loaded and complete are both valid states\n                if ( document.readyState == \"loaded\" || \n                        document.readyState == \"complete\" ) {\n\n                        \/\/ If either one are found, remove the timer\n                        clearInterval( jQuery.safariTimer );\n                        jQuery.safariTimer = null;\n\n                        \/\/ and execute any waiting functions\n                        jQuery.ready();\n                }\n        }, 10);\n}<\/code><\/pre>\n<p>\nA v\u010faka jQuery mohli v\u00fdvoj\u00e1ri prenies\u0165 starosti o v\u0161etky tieto \u00faskalia na plecia t\u00edmu, ktor\u00fd vyv\u00edjal kni\u017enicu.<\/p>\n<p>Nesk\u00f4r jQuery u\u013eah\u010dila implement\u00e1ciu zlo\u017eitej\u0161\u00edch technol\u00f3gi\u00ed, ako s\u00fa anim\u00e1cie a Ajax. Kni\u017enica sa v podstate stala \u0161tandardnou z\u00e1vislos\u0165ou pre webov\u00e9 str\u00e1nky. A dnes zabezpe\u010duje fungovanie obrovskej \u010dasti internetu. W3Techs pova\u017euje, \u017ee <noindex><a rel=\"nofollow\" href=\"https:\/\/w3techs.com\/technologies\/details\/js-jquery\/all\/all\">74 % webov\u00fdch str\u00e1nok dnes pou\u017e\u00edva jQuery<\/a><\/noindex>.<\/p>\n<p>Kontrola nad v\u00fdvojom jQuery sa taktie\u017e stala form\u00e1lnej\u0161ou. V roku 2011 t\u00edm <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.jquery.com\/2011\/11\/18\/getting-board-of-jquery\/\">vytvoril jQuery Board<\/a><\/noindex>. A v roku 2012 sa jQuery Board<noindex><a rel=\"nofollow\" href=\"https:\/\/blog.jquery.com\/2012\/03\/06\/announcing-the-jquery-foundation\/\"> pretransformovala na jQuery Foundation<\/a><\/noindex>.<\/p>\n<p>V roku 2015 sa jQuery Foundation zl\u00fa\u010dil s Dojo Foundation,<noindex><a rel=\"nofollow\" href=\"https:\/\/blog.jquery.com\/2015\/09\/01\/jquery-foundation-and-dojo-foundation-to-merge\/\"> aby vytvoril JS Foundation<\/a><\/noindex>, ktor\u00e1 sa nesk\u00f4r spojila s Node.js Foundation v<noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@nodejs\/introducing-the-openjs-foundation-the-next-phase-of-javascript-ecosystem-growth-d4911b42664f\"> 2019<\/a><\/noindex>-om na vytvorenie<noindex><a rel=\"nofollow\" href=\"https:\/\/openjsf.org\/\"> OpenJS Foundation<\/a><\/noindex>, v r\u00e1mci ktor\u00e9ho jQuery bola jednou z &#171;<noindex><a rel=\"nofollow\" href=\"https:\/\/openjsf.org\/projects\/#impact\">priekopn\u00edckych projektov<\/a><\/noindex>.&#187;<\/p>\n<h2>Men\u00ed sa situ\u00e1cia<\/h2>\n<p>\nAv\u0161ak v posledn\u00fdch rokoch jQuery <noindex><a rel=\"nofollow\" href=\"https:\/\/trends.google.com\/trends\/explore\/TIMESERIES\/1564319400?hl=en-US&amp;tz=240&amp;date=all&amp;geo=US&amp;q=jquery&amp;sni=3\">stratilo ur\u010dit\u00fa popularitu<\/a><\/noindex>. GitHub<noindex><a rel=\"nofollow\" href=\"https:\/\/github.blog\/2018-09-06-removing-jquery-from-github-frontend\/\"> odstr\u00e1nil kni\u017enicu z frontendovej \u010dasti svojho webu<\/a><\/noindex>. Bootstrap v5 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/twbs\/bootstrap\/pull\/23586\">sa zbav\u00ed jQuery<\/a><\/noindex>, preto\u017ee je to jeho \u201e<noindex><a rel=\"nofollow\" href=\"https:\/\/blog.getbootstrap.com\/2019\/02\/11\/bootstrap-4-3-0\/\">najv\u00e4\u010d\u0161ia klientsk\u00e1 z\u00e1vislos\u0165 pre be\u017en\u00fd JavaScript<\/a><\/noindex>\u201c (v s\u00fa\u010dasnosti ve\u013ekos\u0165 30 kB, minifikovan\u00e1 a zabalen\u00e1). Nieko\u013eko trendov vo webovom v\u00fdvoji oslabilo poz\u00edciu jQuery ako nevyhnutn\u00e9ho n\u00e1stroja.<\/p>\n<h3>Prehliada\u010de<\/h3>\n<p>\nZ viacer\u00fdch d\u00f4vodov sa rozdiely a obmedzenia prehliada\u010dov stali menej d\u00f4le\u017eit\u00fdmi. Po prv\u00e9, zlep\u0161ila sa \u0161tandardiz\u00e1cia. Hlavn\u00ed v\u00fdvoj\u00e1ri prehliada\u010dov (Apple, Google, Microsoft a Mozilla) spolupracuj\u00fa na<noindex><a rel=\"nofollow\" href=\"https:\/\/spec.whatwg.org\/\"> webov\u00fdch \u0161tandardoch<\/a><\/noindex> v r\u00e1mci<noindex><a rel=\"nofollow\" href=\"https:\/\/whatwg.org\/\"> Web Hypertext Application Technology Working Group<\/a><\/noindex>.<br \/>\nHoci sa prehliada\u010de st\u00e1le l\u00ed\u0161ia v nieko\u013ek\u00fdch d\u00f4le\u017eit\u00fdch aspektoch, dod\u00e1vatelia aspo\u0148 maj\u00fa prostriedky na vyh\u013ead\u00e1vanie a vytv\u00e1ranie spolo\u010dnej z\u00e1kladne namiesto <noindex><a rel=\"nofollow\" href=\"https:\/\/thehistoryoftheweb.com\/browser-wars\/\">permanentnej vojny<\/a><\/noindex> navz\u00e1jom. Zodpovedaj\u00faco, API prehliada\u010dov z\u00edskali nov\u00e9 mo\u017enosti. Napr\u00edklad, <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Fetch_API\">Fetch API<\/a><\/noindex> je schopn\u00fd nahradi\u0165 Ajax-funkcie z jQuery:<\/p>\n<pre><code class=\"javascript\">\/\/ jQuery\n$.getJSON('https:\/\/api.com\/songs.json')\n    .done(function (songs) {\n        console.log(songs);\n    })\n\n\/\/ native\nfetch('https:\/\/api.com\/songs.json')\n    .then(function (response) {\n        return response.json();\n    })\n    .then(function (songs) {\n        console.log(songs);\n    });<\/code><\/pre>\n<p>\nMet\u00f3dy <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Document\/querySelector\">querySelector<\/a><\/noindex> a<noindex><a rel=\"nofollow\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Document\/querySelectorAll\"> querySelectorAll<\/a><\/noindex> duplikuj\u00fa prostriedky v\u00fdberu z jQuery:<\/p>\n<pre><code class=\"javascript\">\/\/ jQuery\nconst fooDivs = $('.foo div');\n\n\/\/ native\nconst fooDivs = document.querySelectorAll('.foo div');<\/code><\/pre>\n<p>\nManipul\u00e1cia s triedami elementov je teraz mo\u017en\u00e1 pomocou <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Element\/classList\">classList<\/a><\/noindex>:<\/p>\n<pre><code class=\"javascript\">\/\/ jQuery\n$('#warning').toggleClass('visible');\n\n\/\/ native\ndocument.querySelector('#warning').classList.toggle('visible');<\/code><\/pre>\n<p>\nNa str\u00e1nke<noindex><a rel=\"nofollow\" href=\"http:\/\/youmightnotneedjquery.com\/\"> Nemus\u00edte potrebova\u0165 jQuery<\/a><\/noindex> je uveden\u00e9 nieko\u013eko \u010fal\u0161\u00edch situ\u00e1ci\u00ed, kde je mo\u017en\u00e9 nahradi\u0165 k\u00f3d jQuery nat\u00edvnym k\u00f3dom. Niektor\u00ed v\u00fdvoj\u00e1ri sa st\u00e1le dr\u017eia jQuery, preto\u017ee jednoducho nevedia o nov\u00fdch API, ale ke\u010f sa dozvedia, za\u010d\u00ednaj\u00fa t\u00fato kni\u017enicu pou\u017e\u00edva\u0165 menej.<\/p>\n<p>Pou\u017e\u00edvanie nat\u00edvnych funkci\u00ed umo\u017e\u0148uje zv\u00fd\u0161i\u0165 v\u00fdkon str\u00e1nok. Mnoho <noindex><a rel=\"nofollow\" href=\"https:\/\/api.jquery.com\/category\/effects\/\">animovan\u00fdch efektov z jQuery<\/a><\/noindex> je teraz mo\u017en\u00e9 realizova\u0165<noindex><a rel=\"nofollow\" href=\"https:\/\/dev.opera.com\/articles\/css3-vs-jquery-animations\/\"> ove\u013ea efekt\u00edvnej\u0161ie<\/a><\/noindex> pomocou CSS.<\/p>\n<p>D\u00f4vodom je, \u017ee prehliada\u010de sa aktualizuj\u00fa ove\u013ea r\u00fdchlej\u0161ie ako predt\u00fdm. Vo v\u00e4\u010d\u0161ine z nich sa uplat\u0148uje <noindex><a rel=\"nofollow\" href=\"https:\/\/www.techopedia.com\/definition\/31094\/evergreen-browser\">\u201eve\u010dn\u00e1\u201c strat\u00e9gia aktualiz\u00e1cie<\/a><\/noindex>, s v\u00fdnimkou Apple Safari. M\u00f4\u017eu sa aktualizova\u0165 na pozad\u00ed bez zapojenia pou\u017e\u00edvate\u013ea a nie s\u00fa viazan\u00e9 na aktualiz\u00e1cie OS.<\/p>\n<p>To znamen\u00e1, \u017ee nov\u00e9 mo\u017enosti prehliada\u010dov a opravy ch\u00fdb sa \u0161\u00edria ove\u013ea r\u00fdchlej\u0161ie, a v\u00fdvoj\u00e1ri nemusia \u010daka\u0165, k\u00fdm podiel <noindex><a rel=\"nofollow\" href=\"https:\/\/caniuse.com\/\">Can I Use<\/a><\/noindex> dosiahne prijate\u013en\u00fa \u00farove\u0148. M\u00f4\u017eu s d\u00f4verou vyu\u017e\u00edva\u0165 nov\u00e9 funkcie a API bez za\u0165a\u017eenia jQuery alebo polyfillov.<\/p>\n<p>Tret\u00edm d\u00f4vodom je, \u017ee Internet Explorer sa bl\u00ed\u017ei k stavu \u00faplnej neaktu\u00e1lnosti. IE je u\u017e dlho pohromou webov\u00e9ho v\u00fdvoja po celom svete. Typick\u00e9 chyby sa roz\u0161\u00edrili, a ke\u010f\u017ee IE dominoval v 2000-tych rokoch a nemal \"ve\u010dn\u00fa\" strat\u00e9giu aktualiz\u00e1cie, jeho star\u00e9 verzie s\u00fa st\u00e1le \u010dasto pou\u017e\u00edvan\u00e9.<\/p>\n<p>V roku 2016 Microsoft ur\u00fdchlil ukon\u010denie podpory IE, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.microsoft.com\/en-us\/microsoft-365\/windows\/end-of-ie-support\">preru\u0161en\u00edm podpory<\/a><\/noindex> desiatej a star\u0161\u00edch verzi\u00ed, obmedzuj\u00fac sa na podporu IE 11. A \u010doraz \u010dastej\u0161ie si webov\u00ed v\u00fdvoj\u00e1ri m\u00f4\u017eu dovoli\u0165 luxus ignorovania kompatibility s IE.<\/p>\n<p>Dokonca aj jQuery prestal podporova\u0165 IE 8 a star\u0161ie od <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.jquery.com\/2013\/04\/18\/jquery-2-0-released\/\">verzie 2.0<\/a><\/noindex>, ktor\u00e1 vy\u0161la v roku 2013. A hoci v niektor\u00fdch pr\u00edpadoch je e\u0161te potrebn\u00e1 podpora IE, napr\u00edklad na star\u00fdch str\u00e1nkach, tak\u00e9to situ\u00e1cie vznikaj\u00fa \u010doraz zriedkavej\u0161ie.<\/p>\n<h3>Nov\u00e9 frameworky<\/h3>\n<p>\nOd vzniku jQuery bolo vytvoren\u00fdch mno\u017estvo frameworkov, vr\u00e1tane modern\u00fdch l\u00eddrov <noindex><a rel=\"nofollow\" href=\"https:\/\/reactjs.org\/\">React<\/a><\/noindex>,<noindex><a rel=\"nofollow\" href=\"https:\/\/angular.io\/\"> Angular<\/a><\/noindex> a <noindex><a rel=\"nofollow\" href=\"https:\/\/vuejs.org\/\">Vue<\/a><\/noindex>. Maj\u00fa dve d\u00f4le\u017eit\u00e9 v\u00fdhody oproti jQuery.<\/p>\n<p>Po prv\u00e9, umo\u017e\u0148uj\u00fa jednoducho rozdeli\u0165 pou\u017e\u00edvate\u013esk\u00e9 rozhranie na komponenty. Frameworky s\u00fa navrhnut\u00e9 tak, aby spravovali vykres\u013eovanie a aktualiz\u00e1ciu str\u00e1nky. A jQuery sa zvy\u010dajne pou\u017e\u00edva iba na aktualiz\u00e1ciu, pri\u010dom na serveri zost\u00e1va \u00faloha poskytn\u00fa\u0165 po\u010diato\u010dn\u00fa str\u00e1nku.<\/p>\n<p>Na druhej strane komponenty React, Angular a Vue umo\u017e\u0148uj\u00fa \u00fazko prepoji\u0165 HTML, k\u00f3d a dokonca aj CSS. Tak, ako del\u00edme k\u00f3dov\u00fa z\u00e1klad\u0148u na mnoh\u00e9 samostatn\u00e9 funkcie a triedy, tak aj mo\u017enos\u0165 rozdeli\u0165 rozhranie na op\u00e4tovne pou\u017eite\u013en\u00e9 komponenty zjednodu\u0161uje zostavovanie a \u00fadr\u017ebu zlo\u017eit\u00fdch str\u00e1nok.<\/p>\n<p>Druhou v\u00fdhodou je, \u017ee nov\u0161ie frameworky dodr\u017eiavaj\u00fa deklarat\u00edvnu paradigmu, v r\u00e1mci ktorej v\u00fdvoj\u00e1r opisuje, ako by malo vyzera\u0165 rozhranie, a vykonanie v\u0161etk\u00fdch potrebn\u00fdch zmien na dosiahnutie \u017eelan\u00e9ho preber\u00e1 framework. Tento pr\u00edstup je v rozpore s imperat\u00edvnym pr\u00edstupom, ktor\u00fd je charakteristick\u00fd pre k\u00f3d jQuery.<\/p>\n<p>V jQuery uv\u00e1dzate explicitne kroky na vykonanie ak\u00fdchko\u013evek zmien. A v deklarat\u00edvnom frameworku hovor\u00edte: \u201ePod\u013ea t\u00fdchto \u00fadajov by malo rozhranie vyzera\u0165 takto\u201c. To m\u00f4\u017ee zna\u010dne u\u013eah\u010di\u0165 p\u00edsanie k\u00f3du bez ch\u00fdb.<\/p>\n<p>V\u00fdvoj\u00e1ri si osvojili nov\u00e9 pr\u00edstupy k v\u00fdvoju webov\u00fdch str\u00e1nok, \u010do sp\u00f4sobilo pokles popularity jQuery.<\/p>\n<h2>Kedy pou\u017ei\u0165 jQuery?<\/h2>\n<p>\nTak kedy <i>pou\u017ei\u0165 <\/i>pou\u017ei\u0165 jQuery?<\/p>\n<p>Ak zlo\u017eitost projektu porastie, je lep\u0161ie za\u010da\u0165 s inou kni\u017enicou alebo r\u00e1mcom, ktor\u00fd umo\u017e\u0148uje rozumne spravova\u0165 zlo\u017eitosti. Napr\u00edklad rozde\u013ete rozhranie na komponenty. Pou\u017e\u00edvanie jQuery na tak\u00fdchto str\u00e1nkach m\u00f4\u017ee spo\u010diatku vyzera\u0165 akceptovate\u013ene, ale r\u00fdchlo to povedie k vzniku spaghetti k\u00f3du, ke\u010f nebudete vedie\u0165, ktor\u00fd fragment ovplyv\u0148uje ak\u00fa \u010das\u0165 str\u00e1nky.<\/p>\n<p>Occol som sa v takej situ\u00e1cii, ke\u010f pri pokuse o ak\u00fako\u013evek zmenu m\u00e1m pocit, \u017ee to je n\u00e1ro\u010dn\u00e1 \u00faloha. Nem\u00f4\u017eete si by\u0165 ist\u00ed, \u017ee ni\u010d nerozb\u00edte, preto\u017ee selektory jQuery z\u00e1visia od HTML \u0161trukt\u00fary vytvorenej serverom.<\/p>\n<p>Na druhej strane s\u00fa jednoduch\u00e9 str\u00e1nky, ktor\u00e9 vy\u017eaduj\u00fa len tro\u0161ku interaktivity alebo dynamick\u00e9ho obsahu. V tak\u00fdchto pr\u00edpadoch by som tie\u017e nepou\u017e\u00edval jQuery ako default, preto\u017ee s nat\u00edvnymi API sa d\u00e1 dosiahnu\u0165 ove\u013ea viac.<\/p>\n<p>Aj ke\u010f budem potrebova\u0165 nie\u010do mocnej\u0161ie, budem h\u013eada\u0165 \u0161pecializovan\u00fa kni\u017enicu, napr\u00edklad <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/axios\/axios\">axios<\/a><\/noindex> pre Ajax alebo<noindex><a rel=\"nofollow\" href=\"https:\/\/daneden.github.io\/animate.css\/\"> Animate.css<\/a><\/noindex> pre anim\u00e1cie. Bude to jednoduch\u0161ie ako na\u010d\u00edta\u0165 cel\u00e9 jQuery kv\u00f4li malej funkcionalite.<\/p>\n<p>Mysl\u00edm, \u017ee najlep\u0161\u00edm od\u00f4vodnen\u00edm pre pou\u017eitie jQuery je, \u017ee poskytuje komplexn\u00fa funkcionalitu pre pr\u00e1cu s frontendom webovej str\u00e1nky. Namiesto \u0161t\u00fadia r\u00f4znych nat\u00edvnych API alebo \u0161pecializovan\u00fdch kni\u017en\u00edc m\u00f4\u017eete pre\u010d\u00edta\u0165 iba dokument\u00e1ciu jQuery a okam\u017eite sa sta\u0165 produkt\u00edvnymi.<\/p>\n<p>Impera\u00edvny pr\u00edstup sa zle \u0161k\u00e1luje, ale je jednoduch\u0161ie sa ho nau\u010di\u0165 ako deklarat\u00edvny pr\u00edstup in\u00fdch kni\u017en\u00edc. Pre webov\u00fa str\u00e1nku s jasne obmedzen\u00fdmi mo\u017enos\u0165ami je lep\u0161ie pou\u017ei\u0165 jQuery a pracova\u0165 v pokoji: kni\u017enica nevy\u017eaduje zlo\u017eit\u00fa zostavu alebo kompil\u00e1ciu.<\/p>\n<p>Okrem toho je jQuery dobrou vo\u013ebou v pr\u00edpade, ak si ste ist\u00ed, \u017ee str\u00e1nka v priebehu \u010dasu nebude zlo\u017eit\u00e1, a ak v\u00e1s nezauj\u00edma nat\u00edvna funkcionalita, ktor\u00e1 ur\u010dite vy\u017eaduje nap\u00edsa\u0165 viac k\u00f3du ako jQuery.<\/p>\n<p>Taktie\u017e m\u00f4\u017eete t\u00fato kni\u017enicu pou\u017ei\u0165, ak potrebujete podporova\u0165 star\u0161ie verzie IE. Vtedy v\u00e1m jQuery posl\u00fa\u017ei ako v \u010dase, ke\u010f bol IE najpopul\u00e1rnej\u0161\u00edm prehliada\u010dom.<\/p>\n<h2>Poh\u013ead do bud\u00facnosti<\/h2>\n<p>\njQuery sa e\u0161te dlho nestrat\u00ed. Ona <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jquery\/jquery\">akt\u00edvne sa vyv\u00edja<\/a><\/noindex>, a mnoh\u00ed v\u00fdvoj\u00e1ri preferuj\u00fa pou\u017e\u00edva\u0165 jej API, aj ke\u010f s\u00fa k dispoz\u00edcii nat\u00edvne met\u00f3dy. Kni\u017enica pomohla celej gener\u00e1cii v\u00fdvoj\u00e1rov vytv\u00e1ra\u0165 webov\u00e9 str\u00e1nky, ktor\u00e9 funguj\u00fa vo v\u0161etk\u00fdch prehliada\u010doch. A hoci ju v mnoh\u00fdch aspektoch nahradili nov\u00e9 kni\u017enice, r\u00e1mce a paradigmy, jQuery zohrala obrovsk\u00fa pozit\u00edvnu \u00falohu pri vytv\u00e1ran\u00ed modern\u00e9ho webu.<\/p>\n<p>Ak sa funk\u010dnos\u0165 jQuery v\u00fdrazne nezmen\u00ed, je ve\u013emi pravdepodobn\u00e9, \u017ee v najbli\u017e\u0161\u00edch nieko\u013ek\u00fdch rokoch bude pou\u017e\u00edvanie tejto kni\u017enice na\u010falej pomaly, ale iste klesa\u0165. Nov\u00e9 webov\u00e9 str\u00e1nky sa zvy\u010dajne vytv\u00e1raj\u00fa od za\u010diatku pomocou modernej\u0161\u00edch r\u00e1mcov a vhodn\u00e9 scen\u00e1re pou\u017eitia jQuery sa vyskytuj\u00fa \u010doraz menej.<\/p>\n<p>Niektor\u00fdm sa nep\u00e1\u010di intenzita zastar\u00e1vania n\u00e1strojov pre webov\u00fd v\u00fdvoj, ale pre m\u0148a je to d\u00f4kazom r\u00fdchleho pokroku. jQuery n\u00e1m umo\u017enila robi\u0165 mnoho vec\u00ed lep\u0161ie. To ist\u00e9 plat\u00ed aj pre jej n\u00e1stupcov.<br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/468169\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>jQuery \u2014 \u044d\u0442\u043e \u0441\u0430\u043c\u0430\u044f \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0430\u044f \u0432 \u043c\u0438\u0440\u0435 JavaScript-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430. \u0421\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e \u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0441\u043e\u0437\u0434\u0430\u043b\u043e \u0435\u0451 \u0432 \u043a\u043e\u043d\u0446\u0435 2000-\u0445, \u0447\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u043b\u043e \u043a \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044e \u0431\u043e\u0433\u0430\u0442\u043e\u0439 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441\u0430\u0439\u0442\u043e\u0432, \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c jQuery. \u041d\u043e \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0433\u043e\u0434\u044b \u0435\u0451 \u0441\u0442\u0430\u0442\u0443\u0441 \u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0434\u043b\u044f \u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u0448\u0430\u0442\u043d\u0443\u043b\u0441\u044f. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043f\u043e\u0447\u0435\u043c\u0443 jQuery \u0441\u0442\u0430\u043b\u0430 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0439 \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u043e\u043d\u0430 \u0432\u044b\u0448\u043b\u0430 \u0438\u0437 \u043c\u043e\u0434\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28907,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-38523","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"jQuery \u2014\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sk\/blog\/news\/istoriya-i-nasledie-jquery\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0438 \u043d\u0430\u0441\u043b\u0435\u0434\u0438\u0435 jQuery | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"jQuery \u2014\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sk\/blog\/news\/istoriya-i-nasledie-jquery\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:24:17+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:24:17+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Historia a dedi\u010dstvo jQuery | ProHoster","description":"jQuery \u2014","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/news\/istoriya-i-nasledie-jquery","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0438 \u043d\u0430\u0441\u043b\u0435\u0434\u0438\u0435 jQuery | ProHoster","og:description":"jQuery \u2014","og:url":"https:\/\/prohoster.info\/sk\/blog\/news\/istoriya-i-nasledie-jquery","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:24:17+00:00","article:modified_time":"2019-10-31T19:24:17+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38523","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 22:22:33","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:07:40","updated":"2026-01-23 22:22:33","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/38523","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=38523"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/38523\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/28907"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=38523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=38523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=38523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}