{"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\/sv\/blog\/news\/istoriya-i-nasledie-jquery","title":{"rendered":"Historik och arv av jQuery","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Historik och arv av jQuery\" src=\"\/wp-content\/uploads\/2019\/10\/beb7b33761181e6b478031cf1b85e6c6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\njQuery \u2013 <noindex><a rel=\"nofollow\" href=\"https:\/\/trends.builtwith.com\/javascript\/jQuery\">den mest popul\u00e4ra<\/a><\/noindex> JavaScript-biblioteket i v\u00e4rlden. Gemenskapen av webbutvecklare skapade det i slutet av 2000-talet, vilket ledde till uppkomsten av ett rikt ekosystem av webbplatser, plugins och ramverk som anv\u00e4nder jQuery under huven.<\/p>\n<p>Men under de senaste \u00e5ren har dess status som det fr\u00e4msta verktyget f\u00f6r webbutveckling skakat. L\u00e5t oss titta p\u00e5 varf\u00f6r jQuery blev popul\u00e4r och varf\u00f6r den har blivit omodern, samt under vilka omst\u00e4ndigheter den fortfarande \u00e4r l\u00e4mplig att anv\u00e4nda f\u00f6r att skapa moderna webbplatser.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>En kort historia av jQuery<\/h2>\n<p>\nJohn Resig (<noindex><a rel=\"nofollow\" href=\"https:\/\/johnresig.com\/\">John Resig<\/a><\/noindex>) skapade den f\u00f6rsta versionen av biblioteket 2005 och <noindex><a rel=\"nofollow\" href=\"https:\/\/johnresig.com\/blog\/barcampnyc-wrap-up\/\">publicerade den 2006<\/a><\/noindex>- p\u00e5 ett evenemang som kallades BarCampNYC. P\u00e5 den <noindex><a rel=\"nofollow\" href=\"https:\/\/web.archive.org\/web\/20060203025710\/http:\/\/jquery.com\/\">officiella jQuery-webbplatsen<\/a><\/noindex> skrev f\u00f6rfattaren:<\/p>\n<blockquote><p>jQuery \u00e4r ett JavaScript-bibliotek vars motto \u00e4r: Att programmera i JavaScript ska vara roligt. jQuery tar vanliga, repetitiva uppgifter, tar bort allt on\u00f6digt markup och g\u00f6r dem korta, eleganta och intuitiva.<\/p><\/blockquote>\n<p>\njQuery har tv\u00e5 huvudf\u00f6rdelar. Den f\u00f6rsta \u00e4r ett anv\u00e4ndarv\u00e4nligt API f\u00f6r att manipulera webbsidor. S\u00e4rskilt erbjuder det kraftfulla metoder f\u00f6r att v\u00e4lja element. Man kan v\u00e4lja inte bara efter ID eller klasser; jQuery till\u00e5ter att skriva komplexa uttryck, till exempel f\u00f6r att v\u00e4lja element baserat p\u00e5 deras relationer med andra element:<\/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>\nMed tiden utvecklades urvalsmekanismen till ett separat bibliotek <noindex><a rel=\"nofollow\" href=\"https:\/\/sizzlejs.com\/\">Sizzle<\/a><\/noindex>.<\/p>\n<p>Den andra f\u00f6rdelen med biblioteket var att det abstraherade skillnaderna mellan webbl\u00e4sare. P\u00e5 den tiden var det sv\u00e5rt att skriva kod som p\u00e5litligt fungerade i alla webbl\u00e4sare. <\/p>\n<p>Avsaknad av standardisering innebar att utvecklarna beh\u00f6vde ta h\u00e4nsyn till m\u00e5nga skillnader mellan webbl\u00e4sare och specialfall. Ta en titt p\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/daniellmb\/jquery-archive\/blob\/master\/jquery.2006-07-01.js\">denna tidiga k\u00e4llkod av jQuery<\/a><\/noindex> och leta efter jQuery.browser. H\u00e4r \u00e4r ett av exemplen:<\/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>\nOch tack vare jQuery kunde utvecklarna \u00f6verl\u00e5ta ansvaret f\u00f6r alla dessa fallgropar p\u00e5 teamet som utvecklade biblioteket.<\/p>\n<p>Senare gjorde jQuery det l\u00e4ttare att implementera mer komplexa teknologier, som animationer och Ajax. Biblioteket har faktiskt blivit en standardberoende f\u00f6r webbplatser. Idag st\u00f6djer det en stor del av internet. W3Techs anser att <noindex><a rel=\"nofollow\" href=\"https:\/\/w3techs.com\/technologies\/details\/js-jquery\/all\/all\">74 % av webbplatserna idag anv\u00e4nder jQuery<\/a><\/noindex>.<\/p>\n<p>Kontrollen \u00f6ver utvecklingen av jQuery har ocks\u00e5 blivit mer formaliserad. \u00c5r 2011 skapade teamet <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.jquery.com\/2011\/11\/18\/getting-board-of-jquery\/\">jQuery Board<\/a><\/noindex>. Och 2012 jQuery Board<noindex><a rel=\"nofollow\" href=\"https:\/\/blog.jquery.com\/2012\/03\/06\/announcing-the-jquery-foundation\/\"> f\u00f6rvandlades till jQuery Foundation<\/a><\/noindex>.<\/p>\n<p>\u00c5r 2015 ansl\u00f6t sig jQuery Foundation till Dojo Foundation,<noindex><a rel=\"nofollow\" href=\"https:\/\/blog.jquery.com\/2015\/09\/01\/jquery-foundation-and-dojo-foundation-to-merge\/\"> f\u00f6r att skapa JS Foundation<\/a><\/noindex>, som sedan gick samman med Node.js Foundation i<noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@nodejs\/introducing-the-openjs-foundation-the-next-phase-of-javascript-ecosystem-growth-d4911b42664f\"> 2019<\/a><\/noindex>-t f\u00f6r att skapa<noindex><a rel=\"nofollow\" href=\"https:\/\/openjsf.org\/\"> OpenJS Foundation<\/a><\/noindex>, inom vilket jQuery var en av &#171;<noindex><a rel=\"nofollow\" href=\"https:\/\/openjsf.org\/projects\/#impact\">banbrytande projekten<\/a><\/noindex>.&#187;<\/p>\n<h2>F\u00f6r\u00e4ndrade omst\u00e4ndigheter<\/h2>\n<p>\nMen under de senaste \u00e5ren har 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\">tappat en del av sin popularitet<\/a><\/noindex>. GitHub<noindex><a rel=\"nofollow\" href=\"https:\/\/github.blog\/2018-09-06-removing-jquery-from-github-frontend\/\"> tog bort biblioteket fr\u00e5n frontend p\u00e5 sin webbplats<\/a><\/noindex>. Bootstrap v5 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/twbs\/bootstrap\/pull\/23586\">ska bli av med jQuery<\/a><\/noindex>, eftersom det \u00e4r dess \"<noindex><a rel=\"nofollow\" href=\"https:\/\/blog.getbootstrap.com\/2019\/02\/11\/bootstrap-4-3-0\/\">st\u00f6rsta klientberoende f\u00f6r vanlig JavaScript<\/a><\/noindex>\" (f\u00f6r tillf\u00e4llet 30 kB, minifierad och paketerad). Flera trender inom webbdesign har f\u00f6rsvagat jQuerys st\u00e4llning som ett n\u00f6dv\u00e4ndigt verktyg.<\/p>\n<h3>Webbl\u00e4sare<\/h3>\n<p>\nAv flera sk\u00e4l har skillnaderna och begr\u00e4nsningarna mellan webbl\u00e4sare blivit mindre viktiga. F\u00f6r det f\u00f6rsta har standardiseringen f\u00f6rb\u00e4ttrats. De fr\u00e4msta webbl\u00e4sarutvecklarna (Apple, Google, Microsoft och Mozilla) utvecklar tillsammans<noindex><a rel=\"nofollow\" href=\"https:\/\/spec.whatwg.org\/\"> webbstandarder<\/a><\/noindex> inom<noindex><a rel=\"nofollow\" href=\"https:\/\/whatwg.org\/\"> Web Hypertext Application Technology Working Group<\/a><\/noindex>.<br \/>\n\u00c4ven om webbl\u00e4sare fortfarande skiljer sig \u00e5t p\u00e5 flera viktiga punkter, har leverant\u00f6rerna \u00e5tminstone ett medel f\u00f6r att hitta och skapa en gemensam bas ist\u00e4llet f\u00f6r <noindex><a rel=\"nofollow\" href=\"https:\/\/thehistoryoftheweb.com\/browser-wars\/\">permanent krig<\/a><\/noindex> med varandra. F\u00f6ljaktligen har webbl\u00e4sares API:er f\u00e5tt nya m\u00f6jligheter. Till exempel, <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Fetch_API\">Fetch API<\/a><\/noindex> kan ers\u00e4tta Ajax-funktioner fr\u00e5n 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>\nMetoder <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Document\/querySelector\">querySelector<\/a><\/noindex> och<noindex><a rel=\"nofollow\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Document\/querySelectorAll\"> querySelectorAll<\/a><\/noindex> duplicerar selektionsverktygen fr\u00e5n 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>\nAtt manipulera elementklasser kan nu g\u00f6ras med <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>\nP\u00e5 webbplatsen<noindex><a rel=\"nofollow\" href=\"http:\/\/youmightnotneedjquery.com\/\"> You Might Not Need jQuery<\/a><\/noindex> n\u00e4mns flera andra situationer d\u00e4r jQuery-kod kan ers\u00e4ttas med native-kod. Vissa utvecklare h\u00e5ller alltid fast vid jQuery, eftersom de helt enkelt inte k\u00e4nner till de nya API:erna, men n\u00e4r de f\u00e5r k\u00e4nnedom om dem, b\u00f6rjar de anv\u00e4nda biblioteket mer s\u00e4llan.<\/p>\n<p>Att anv\u00e4nda inbyggda funktioner kan f\u00f6rb\u00e4ttra sidprestanda. M\u00e5nga <noindex><a rel=\"nofollow\" href=\"https:\/\/api.jquery.com\/category\/effects\/\">animations effekter fr\u00e5n jQuery<\/a><\/noindex> kan nu implementeras<noindex><a rel=\"nofollow\" href=\"https:\/\/dev.opera.com\/articles\/css3-vs-jquery-animations\/\"> mycket mer effektivt<\/a><\/noindex> med CSS.<\/p>\n<p>Den andra anledningen \u00e4r att webbl\u00e4sare uppdateras mycket snabbare \u00e4n tidigare. De flesta av dem anv\u00e4nder <noindex><a rel=\"nofollow\" href=\"https:\/\/www.techopedia.com\/definition\/31094\/evergreen-browser\">\"evig gr\u00f6n\" uppdateringsstrategi<\/a><\/noindex>, med undantag f\u00f6r Apple Safari. De kan uppdateras i bakgrunden utan att anv\u00e4ndaren beh\u00f6ver delta och \u00e4r inte knutna till operativsystemets uppdateringar.<\/p>\n<p>Detta inneb\u00e4r att nya webbl\u00e4sarfunktioner och buggfixar sprids mycket snabbare, och utvecklare beh\u00f6ver inte v\u00e4nta p\u00e5 att andelen <noindex><a rel=\"nofollow\" href=\"https:\/\/caniuse.com\/\">Can I Use<\/a><\/noindex> n\u00e5r de n\u00e5r et acceptabelt niveau. De kan trygt bruge nye funktioner og API'er uden at indl\u00e6se jQuery eller polyfills.<\/p>\n<p>Den tredje grund er, at Internet Explorer n\u00e6rmer sig en tilstand af total irrelevans. IE har l\u00e6nge v\u00e6ret en plage for webudvikling over hele verden. Typiske fejl er blevet meget udbredte, og da IE dominerede i 2000'erne og ikke anvendte en \"evergreen\" opdateringsstrategi, findes der stadig ofte gamle versioner.<\/p>\n<p>I 2016 accelererede Microsoft udfasningen af IE, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.microsoft.com\/en-us\/microsoft-365\/windows\/end-of-ie-support\">ved at stoppe med at st\u00f8tte<\/a><\/noindex> den tiende og tidligere versioner, begr\u00e6nsende st\u00f8tten til IE 11. Og webudviklere kan i stigende grad tillade sig at ignorere kompatibilitet med IE.<\/p>\n<p>Selv jQuery stoppede med at underst\u00f8tte IE 8 og tidligere versioner fra <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.jquery.com\/2013\/04\/18\/jquery-2-0-released\/\">version 2.0<\/a><\/noindex>, som blev udgivet i 2013. Selvom der stadig er tilf\u00e6lde, hvor st\u00f8tte til IE er n\u00f8dvendig, f.eks. p\u00e5 \u00e6ldre websteder, opst\u00e5r disse situationer sj\u00e6ldnere.<\/p>\n<h3>Nye rammer<\/h3>\n<p>\nSiden jQuerys fremkomst er der blevet skabt mange rammer, herunder moderne ledere som <noindex><a rel=\"nofollow\" href=\"https:\/\/reactjs.org\/\">React<\/a><\/noindex>,<noindex><a rel=\"nofollow\" href=\"https:\/\/angular.io\/\"> Angular<\/a><\/noindex> och <noindex><a rel=\"nofollow\" href=\"https:\/\/vuejs.org\/\">Vue<\/a><\/noindex>. De har to vigtige fordele i forhold til jQuery.<\/p>\n<p>For det f\u00f8rste g\u00f8r de det let at opdele brugergr\u00e6nsefladen i komponenter. Rammerne er designet til at h\u00e5ndtere rendering og opdatering af sider. jQuery bruges normalt kun til opdatering, idet serveren stiller den indledende side til r\u00e5dighed.<\/p>\n<p>P\u00e5 den anden side g\u00f8r komponenter i React, Angular og Vue det muligt at binde HTML, kode og endda CSS t\u00e6t sammen. Ligesom vi opdeler kodebasen i mange selvst\u00e6ndige funktioner og klasser, g\u00f8r muligheden for at opdele gr\u00e6nsefladen i genanvendelige komponenter det nemmere at samle og vedligeholde komplekse websteder.<\/p>\n<p>Den anden fordel er, at nyere rammer f\u00f8lger den deklarative paradieme, hvor udvikleren beskriver, hvordan gr\u00e6nsefladen skal se ud, og alle n\u00f8dvendige \u00e6ndringer for at opn\u00e5 dette overlades til rammen. Denne tilgang st\u00e5r i kontrast til den imperativ tilgang, der kendetegner jQuery-kode.<\/p>\n<p>I jQuery angiver du eksplicit trinene for at foretage \u00e6ndringer. I en deklarativ ramme siger du: \"I henhold til disse data, skal gr\u00e6nsefladen se s\u00e5dan ud.\" Dette kan g\u00f8re det betydeligt lettere at skrive fejlfri kode.<\/p>\n<p>Utvecklare har anammat nya tillv\u00e4gag\u00e5ngss\u00e4tt f\u00f6r webbplatsutveckling, vilket har lett till att populariteten f\u00f6r jQuery har minskat.<\/p>\n<h2>N\u00e4r ska man anv\u00e4nda jQuery?<\/h2>\n<p>\nS\u00e5 n\u00e4r ska <i>man <\/i>anv\u00e4nda jQuery?<\/p>\n<p>Om projektets komplexitet \u00f6kar, \u00e4r det b\u00e4ttre att b\u00f6rja med ett annat bibliotek eller ramverk som g\u00f6r det m\u00f6jligt att hantera komplexitet p\u00e5 ett meningsfullt s\u00e4tt. Till exempel kan man dela upp gr\u00e4nssnittet i komponenter. Anv\u00e4ndning av jQuery p\u00e5 s\u00e5dana webbplatser i b\u00f6rjan kan verka acceptabelt, men det kommer snabbt leda till spaghetti-kod, d\u00e4r du inte \u00e4r s\u00e4ker p\u00e5 vilken del som p\u00e5verkar vilken del av sidan.<\/p>\n<p>Jag har varit i en s\u00e5dan situation, d\u00e4r varje f\u00f6r\u00e4ndring k\u00e4nns som en sv\u00e5r uppgift. Man kan inte vara s\u00e4ker p\u00e5 att man inte kommer att bryta n\u00e5got eftersom jQuery-selektorer \u00e4r beroende av HTML-strukturen skapad av servern.<\/p>\n<p>I andra \u00e4nden av skalan finns enkla webbplatser som bara beh\u00f6ver lite interaktivitet eller dynamiskt inneh\u00e5ll. I s\u00e5dana fall skulle jag inte heller anv\u00e4nda jQuery som standard, eftersom man kan g\u00f6ra mycket mer med de inbyggda API:erna.<\/p>\n<p>Till och med om jag beh\u00f6ver n\u00e5got mer kraftfullt, kommer jag att leta efter ett specialiserat bibliotek, till exempel, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/axios\/axios\">axios<\/a><\/noindex> f\u00f6r Ajax eller<noindex><a rel=\"nofollow\" href=\"https:\/\/daneden.github.io\/animate.css\/\"> Animate.css<\/a><\/noindex> f\u00f6r animationer. Det kommer att vara enklare \u00e4n att ladda hela jQuery f\u00f6r liten funktionalitet.<\/p>\n<p>Jag tror att det b\u00e4sta sk\u00e4let till att anv\u00e4nda jQuery \u00e4r att det erbjuder en omfattande funktionalitet f\u00f6r frontend-arbete p\u00e5 webbplatsen. Ist\u00e4llet f\u00f6r att l\u00e4ra sig om olika inbyggda API:er eller specialiserade bibliotek kan du bara l\u00e4sa jQuery-dokumentationen och bli produktiv direkt.<\/p>\n<p>Det imperativa tillv\u00e4gag\u00e5ngss\u00e4ttet skalas d\u00e5ligt, men det \u00e4r l\u00e4ttare att l\u00e4ra sig \u00e4n det deklarativa tillv\u00e4gag\u00e5ngss\u00e4ttet hos andra bibliotek. F\u00f6r en webbplats med uppenbart begr\u00e4nsade funktioner \u00e4r det b\u00e4ttre att anv\u00e4nda jQuery och arbeta bekv\u00e4mt: biblioteket kr\u00e4ver ingen komplicerad byggprocess eller kompilering.<\/p>\n<p>Dessutom \u00e4r jQuery bra i de fall d\u00e4r du \u00e4r s\u00e4ker p\u00e5 att webbplatsen inte kommer att bli mer komplex \u00f6ver tid, och om du inte bekymrar dig f\u00f6r inbyggd funktionalitet, som definitivt kommer att kr\u00e4va mer kod \u00e4n jQuery.<\/p>\n<p>Du kan ocks\u00e5 anv\u00e4nda detta bibliotek om du beh\u00f6ver st\u00f6dja \u00e4ldre versioner av IE. D\u00e5 jQuery kommer att fungera f\u00f6r dig som p\u00e5 den tiden n\u00e4r IE var den mest popul\u00e4ra webbl\u00e4saren.<\/p>\n<h2>En blick in i framtiden<\/h2>\n<p>\njQuery f\u00f6rsvinner inte snart. Den <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jquery\/jquery\">utvecklas aktivt<\/a><\/noindex>, och m\u00e5nga utvecklare f\u00f6redrar att anv\u00e4nda dess API, \u00e4ven med tillg\u00e4ngliga inbyggda metoder. Biblioteket har hj\u00e4lpt en hel generation utvecklare att skapa webbplatser som fungerar i alla webbl\u00e4sare. Och \u00e4ven om nya bibliotek, ramverk och paradigmer har ersatt det i m\u00e5nga avseenden, har jQuery spelat en enormt positiv roll i skapandet av det moderna webben.<\/p>\n<p>Om jQuery:s funktionalitet inte f\u00f6r\u00e4ndras drastiskt, \u00e4r det mycket troligt att anv\u00e4ndningen av biblioteket kommer att forts\u00e4tta att l\u00e5ngsamt, men stadigt, minska under de kommande \u00e5ren. Nya webbplatser skapas vanligtvis fr\u00e5n b\u00f6rjan med mer moderna ramverk, och l\u00e4mpliga anv\u00e4ndningsscenarier f\u00f6r jQuery dyker upp allt mer s\u00e4llan.<\/p>\n<p>Vissa ogillar hur snabbt verktyg f\u00f6r webbutveckling blir f\u00f6r\u00e5ldrade, men f\u00f6r mig \u00e4r det ett tecken p\u00e5 snabb framsteg. jQuery har gjort mycket b\u00e4ttre. Detsamma g\u00e4ller f\u00f6r dess eftertr\u00e4dare.<br \/>\n<br \/>K\u00e4lla: <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\/sv\/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=\"sv_SE\" \/>\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\/sv\/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\udd47Historien och arvet av jQuery | ProHoster","description":"jQuery \u2013","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/news\/istoriya-i-nasledie-jquery","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/38523","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=38523"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/38523\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/28907"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=38523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=38523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=38523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}