{"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\/es\/blog\/news\/istoriya-i-nasledie-jquery","title":{"rendered":"Historia y legado de jQuery","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Historia y legado de 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\">es la biblioteca de JavaScript m\u00e1s popular<\/a><\/noindex> en el mundo. La comunidad de desarrolladores web la cre\u00f3 a finales de los a\u00f1os 2000, lo que llev\u00f3 a la aparici\u00f3n de un rico ecosistema de sitios, complementos y marcos que utilizan jQuery en su n\u00facleo.<\/p>\n<p>Sin embargo, en los \u00faltimos a\u00f1os, su estatus como herramienta principal para el desarrollo web se ha visto amenazado. Vamos a ver por qu\u00e9 jQuery se volvi\u00f3 popular y por qu\u00e9 ha pasado de moda, as\u00ed como en qu\u00e9 casos todav\u00eda puede ser \u00fatil para crear sitios web modernos.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Una breve historia de jQuery<\/h2>\n<p>\nJohn Resig (<noindex><a rel=\"nofollow\" href=\"https:\/\/johnresig.com\/\">John Resig<\/a><\/noindex>) cre\u00f3 la primera versi\u00f3n de la biblioteca en 2005 y <noindex><a rel=\"nofollow\" href=\"https:\/\/johnresig.com\/blog\/barcampnyc-wrap-up\/\">la public\u00f3 en 2006<\/a><\/noindex>-en un evento llamado BarCampNYC. En el <noindex><a rel=\"nofollow\" href=\"https:\/\/web.archive.org\/web\/20060203025710\/http:\/\/jquery.com\/\">sitio web oficial de jQuery<\/a><\/noindex> el autor escribi\u00f3:<\/p>\n<blockquote><p>jQuery es una biblioteca de JavaScript, cuya premisa es: Programar en JavaScript debe ser agradable. jQuery toma tareas comunes y repetitivas, elimina todo el marcado innecesario y las hace cortas, elegantes y comprensibles.<\/p><\/blockquote>\n<p>\njQuery tiene dos grandes ventajas. La primera es que ofrece una API conveniente para manipular p\u00e1ginas web. En particular, proporciona m\u00e9todos potentes para seleccionar elementos. Se puede seleccionar no solo por ID o clases; jQuery permite escribir expresiones complejas, por ejemplo, para seleccionar elementos en funci\u00f3n de sus relaciones con otros elementos:<\/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>\nCon el tiempo, el mecanismo de selecci\u00f3n se convirti\u00f3 en una biblioteca independiente <noindex><a rel=\"nofollow\" href=\"https:\/\/sizzlejs.com\/\">Sizzle<\/a><\/noindex>.<\/p>\n<p>La segunda ventaja de la biblioteca es que abstract\u00f3 las diferencias entre navegadores. En esos a\u00f1os, era dif\u00edcil escribir c\u00f3digo que funcionara de manera confiable en todos los navegadores. <\/p>\n<p>La falta de estandarizaci\u00f3n significaba que los desarrolladores deb\u00edan tener en cuenta numerosas diferencias entre navegadores y casos l\u00edmite. Echa un vistazo a <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/daniellmb\/jquery-archive\/blob\/master\/jquery.2006-07-01.js\">este c\u00f3digo fuente temprano de jQuery<\/a><\/noindex> y busca en jQuery.browser. Aqu\u00ed tienes uno de los ejemplos:<\/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>\nY gracias a jQuery, los desarrolladores pudieron dejar las preocupaciones sobre todos estos obst\u00e1culos en manos del equipo que desarrolla la biblioteca.<\/p>\n<p>M\u00e1s tarde, jQuery facilit\u00f3 la implementaci\u00f3n de tecnolog\u00edas m\u00e1s complejas, como animaciones y Ajax. La biblioteca se convirti\u00f3 pr\u00e1cticamente en una dependencia est\u00e1ndar para los sitios web. Y hoy en d\u00eda, soporta una gran parte de internet. W3Techs estima que <noindex><a rel=\"nofollow\" href=\"https:\/\/w3techs.com\/technologies\/details\/js-jquery\/all\/all\">el 74 % de los sitios utiliza jQuery<\/a><\/noindex>.<\/p>\n<p>El control sobre el desarrollo de jQuery tambi\u00e9n se volvi\u00f3 m\u00e1s formal. En 2011, el equipo <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.jquery.com\/2011\/11\/18\/getting-board-of-jquery\/\">cre\u00f3 jQuery Board<\/a><\/noindex>. Y en 2012, jQuery Board<noindex><a rel=\"nofollow\" href=\"https:\/\/blog.jquery.com\/2012\/03\/06\/announcing-the-jquery-foundation\/\"> se transform\u00f3 en jQuery Foundation<\/a><\/noindex>.<\/p>\n<p>En 2015, la jQuery Foundation se uni\u00f3 a la Dojo Foundation,<noindex><a rel=\"nofollow\" href=\"https:\/\/blog.jquery.com\/2015\/09\/01\/jquery-foundation-and-dojo-foundation-to-merge\/\"> para crear la JS Foundation<\/a><\/noindex>, que luego se fusion\u00f3 con la Node.js Foundation en<noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@nodejs\/introducing-the-openjs-foundation-the-next-phase-of-javascript-ecosystem-growth-d4911b42664f\"> 2019<\/a><\/noindex>- para establecer la<noindex><a rel=\"nofollow\" href=\"https:\/\/openjsf.org\/\"> OpenJS Foundation<\/a><\/noindex>, en el cual jQuery fue uno de los &#171;<noindex><a rel=\"nofollow\" href=\"https:\/\/openjsf.org\/projects\/#impact\">proyectos pioneros<\/a><\/noindex>.&#187;<\/p>\n<h2>Circunstancias cambiantes<\/h2>\n<p>\nSin embargo, en los \u00faltimos a\u00f1os, 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\">ha perdido algo de popularidad<\/a><\/noindex>. GitHub<noindex><a rel=\"nofollow\" href=\"https:\/\/github.blog\/2018-09-06-removing-jquery-from-github-frontend\/\"> elimin\u00f3 la biblioteca de la parte frontal de su sitio web<\/a><\/noindex>. Bootstrap v5 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/twbs\/bootstrap\/pull\/23586\">se deshar\u00e1 de jQuery<\/a><\/noindex>, porque es su \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/blog.getbootstrap.com\/2019\/02\/11\/bootstrap-4-3-0\/\">mayor dependencia del cliente para JavaScript normal<\/a><\/noindex>\u00bb (actualmente de 30 KB, minificado y empaquetado). Varias tendencias en el desarrollo web han debilitado la posici\u00f3n de jQuery como una herramienta necesaria.<\/p>\n<h3>Navegadores<\/h3>\n<p>\nPor varias razones, las diferencias y limitaciones entre navegadores se han vuelto menos importantes. En primer lugar, ha mejorado la estandarizaci\u00f3n. Los principales desarrolladores de navegadores (Apple, Google, Microsoft y Mozilla) est\u00e1n trabajando juntos en<noindex><a rel=\"nofollow\" href=\"https:\/\/spec.whatwg.org\/\"> est\u00e1ndares web<\/a><\/noindex> en el marco de<noindex><a rel=\"nofollow\" href=\"https:\/\/whatwg.org\/\"> Web Hypertext Application Technology Working Group<\/a><\/noindex>.<br \/>\nAunque los navegadores a\u00fan se diferencian en varios aspectos importantes, al menos los proveedores tienen un medio para encontrar y crear una base com\u00fan en lugar de <noindex><a rel=\"nofollow\" href=\"https:\/\/thehistoryoftheweb.com\/browser-wars\/\">una guerra permanente<\/a><\/noindex> entre ellos. En consecuencia, las API de los navegadores han adquirido nuevas capacidades. Por ejemplo, <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Fetch_API\">Fetch API<\/a><\/noindex> puede reemplazar las funciones Ajax de 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>\nLos m\u00e9todos <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Document\/querySelector\">querySelector<\/a><\/noindex> y<noindex><a rel=\"nofollow\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Document\/querySelectorAll\"> querySelectorAll<\/a><\/noindex> duplican las herramientas de selecci\u00f3n de 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>\nAhora se puede manipular las clases de los elementos con <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>\nse indica que:<noindex><a rel=\"nofollow\" href=\"http:\/\/youmightnotneedjquery.com\/\"> Puede que no necesites jQuery<\/a><\/noindex> se enumeran algunas situaciones m\u00e1s en las que el c\u00f3digo jQuery puede ser reemplazado por c\u00f3digo nativo. Algunos desarrolladores siempre usan jQuery simplemente porque no conocen las nuevas API, pero cuando lo hacen, comienzan a usar esta biblioteca con menos frecuencia.<\/p>\n<p>Utilizar capacidades nativas permite mejorar el rendimiento de las p\u00e1ginas. Muchos <noindex><a rel=\"nofollow\" href=\"https:\/\/api.jquery.com\/category\/effects\/\">efectos de animaci\u00f3n de jQuery<\/a><\/noindex> ahora se pueden implementar<noindex><a rel=\"nofollow\" href=\"https:\/\/dev.opera.com\/articles\/css3-vs-jquery-animations\/\"> de manera mucho m\u00e1s eficiente<\/a><\/noindex> con CSS.<\/p>\n<p>La segunda raz\u00f3n es que los navegadores se actualizan mucho m\u00e1s r\u00e1pido que antes. La mayor\u00eda de ellos aplica una <noindex><a rel=\"nofollow\" href=\"https:\/\/www.techopedia.com\/definition\/31094\/evergreen-browser\">estrategia de actualizaci\u00f3n \u00absiempre verde\u00bb<\/a><\/noindex>, excepto Apple Safari. Pueden actualizarse en segundo plano sin que el usuario se involucre y no est\u00e1n vinculados a las actualizaciones del sistema operativo.<\/p>\n<p>Esto significa que las nuevas capacidades de los navegadores y la correcci\u00f3n de errores se difunden mucho m\u00e1s r\u00e1pido, y los desarrolladores no necesitan esperar a que la cuota de <noindex><a rel=\"nofollow\" href=\"https:\/\/caniuse.com\/\">\u00bfPuedo usar?<\/a><\/noindex> alcanzar\u00e1 un nivel aceptable. Pueden usar nuevas funciones y API sin necesidad de cargar jQuery o polyfills con confianza.<\/p>\n<p>La tercera raz\u00f3n es que Internet Explorer est\u00e1 cerca de ser completamente obsoleto. IE ha sido durante mucho tiempo una pesadilla para el desarrollo web en todo el mundo. Los errores caracter\u00edsticos eran muy comunes, y dado que IE domin\u00f3 en los 2000 y no utiliz\u00f3 una estrategia de actualizaci\u00f3n<\/p>\n<p>En 2016, Microsoft aceler\u00f3 la retirada de IE del uso, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.microsoft.com\/en-us\/microsoft-365\/windows\/end-of-ie-support\">dej\u00f3 de dar soporte a<\/a><\/noindex> la d\u00e9cima versi\u00f3n y versiones anteriores, limit\u00e1ndose a soportar IE 11. Y cada vez m\u00e1s, los desarrolladores web pueden permitirse el lujo de ignorar la compatibilidad con IE.<\/p>\n<p>Incluso jQuery dej\u00f3 de soportar IE 8 y anteriores a partir de <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.jquery.com\/2013\/04\/18\/jquery-2-0-released\/\">la versi\u00f3n 2.0<\/a><\/noindex>, lanzada en 2013. Y aunque en algunos casos todav\u00eda se requiere soporte para IE, por ejemplo, en sitios antiguos, estas situaciones son cada vez m\u00e1s raras.<\/p>\n<h3>Nuevos frameworks<\/h3>\n<p>\nDesde la aparici\u00f3n de jQuery se han creado numerosos frameworks, incluidos los l\u00edderes modernos <noindex><a rel=\"nofollow\" href=\"https:\/\/reactjs.org\/\">React<\/a><\/noindex>,<noindex><a rel=\"nofollow\" href=\"https:\/\/angular.io\/\"> Angular<\/a><\/noindex> y <noindex><a rel=\"nofollow\" href=\"https:\/\/vuejs.org\/\">Vue<\/a><\/noindex>. Tienen dos ventajas importantes sobre jQuery.<\/p>\n<p>Primero, permiten dividir f\u00e1cilmente la interfaz de usuario en componentes. Los frameworks est\u00e1n dise\u00f1ados para manejar el renderizado y la actualizaci\u00f3n de la p\u00e1gina. Y jQuery generalmente se utiliza solo para actualizaciones, delegando al servidor la tarea de proporcionar la p\u00e1gina inicial.<\/p>\n<p>Por otro lado, los componentes de React, Angular y Vue permiten unir estrechamente HTML, c\u00f3digo e incluso CSS. Al igual que dividimos la base de c\u00f3digo en muchas funciones y clases aut\u00f3nomas, la capacidad de dividir la interfaz en componentes reutilizables simplifica la construcci\u00f3n y el mantenimiento de sitios complejos.<\/p>\n<p>La segunda ventaja es que los frameworks m\u00e1s nuevos siguen la par\u00e1bola declarativa, donde el desarrollador describe c\u00f3mo debe verse la interfaz, mientras que la ejecuci\u00f3n de todos los cambios necesarios para lograr el objetivo se deja al framework. Este enfoque es contrario al enfoque imperativo caracter\u00edstico del c\u00f3digo jQuery.<\/p>\n<p>En jQuery, escribes expl\u00edcitamente los pasos para hacer cualquier cambio. En un framework declarativo, dices: 'De acuerdo con estos datos, la interfaz debe verse as\u00ed'. Esto puede facilitar enormemente la escritura de c\u00f3digo sin errores.<\/p>\n<p>Los desarrolladores han adoptado nuevos enfoques para el desarrollo de sitios web, lo que ha disminuido la popularidad de jQuery.<\/p>\n<h2>\u00bfCu\u00e1ndo utilizar jQuery?<\/h2>\n<p>\nEntonces, \u00bfcu\u00e1ndo <i>se deben <\/i>\u00bfdeber\u00edas utilizar jQuery?<\/p>\n<p>Si la complejidad del proyecto va en aumento, es mejor comenzar con otra biblioteca o marco que permita gestionar la complejidad de manera significativa. Por ejemplo, dividir la interfaz en componentes. El uso de jQuery en tales sitios puede parecer aceptable al principio, pero r\u00e1pidamente conducir\u00e1 a la aparici\u00f3n de c\u00f3digo espagueti, donde no estar\u00e1s seguro de qu\u00e9 fragmento afecta a qu\u00e9 parte de la p\u00e1gina.<\/p>\n<p>He estado en esa situaci\u00f3n, donde al intentar hacer cualquier cambio, parece una tarea ardua. No se puede garantizar que no romper\u00e1s nada, ya que los selectores de jQuery dependen de la estructura HTML creada por el servidor.<\/p>\n<p>En el otro extremo de la escala est\u00e1n los sitios simples que solo requieren un poco de interactividad o contenido din\u00e1mico. En tales casos, tampoco utilizar\u00eda jQuery por defecto, ya que con las API nativas se pueden hacer muchas m\u00e1s cosas.<\/p>\n<p>Incluso si necesito algo m\u00e1s potente, buscar\u00e9 una biblioteca especializada, como <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/axios\/axios\">axios<\/a><\/noindex> para Ajax o<noindex><a rel=\"nofollow\" href=\"https:\/\/daneden.github.io\/animate.css\/\"> Animate.css<\/a><\/noindex> para animaciones. Ser\u00e1 m\u00e1s f\u00e1cil que cargar toda jQuery por una funcionalidad menor.<\/p>\n<p>Creo que la mejor justificaci\u00f3n para utilizar jQuery es que proporciona una funcionalidad integral para trabajar en el frontend de un sitio web. En lugar de estudiar diversas API nativas o bibliotecas especializadas, puedes leer solo la documentaci\u00f3n de jQuery y ser productivo de inmediato.<\/p>\n<p>El enfoque imperativo se escala mal, pero es m\u00e1s f\u00e1cil de dominar que el enfoque declarativo de otras bibliotecas. Para un sitio con capacidades claramente limitadas, es mejor aplicar jQuery y trabajar con tranquilidad: la biblioteca no requiere una configuraci\u00f3n o compilaci\u00f3n compleja.<\/p>\n<p>Adem\u00e1s, jQuery es \u00fatil en los casos en que est\u00e1s seguro de que el sitio no se complicar\u00e1 con el tiempo, y si no te importa la funcionalidad nativa, que ciertamente requerir\u00e1 escribir m\u00e1s c\u00f3digo que jQuery.<\/p>\n<p>Tambi\u00e9n puedes aplicar esta biblioteca si necesitas soportar versiones antiguas de IE. En ese caso, jQuery te servir\u00e1 como lo hac\u00eda en tiempos en que IE era el navegador m\u00e1s popular.<\/p>\n<h2>Una mirada al futuro<\/h2>\n<p>\njQuery no desaparecer\u00e1 pronto. Ella <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jquery\/jquery\">sigue desarroll\u00e1ndose<\/a><\/noindex>, y muchos desarrolladores prefieren utilizar su API, incluso cuando hay m\u00e9todos nativos disponibles. La biblioteca ha ayudado a toda una generaci\u00f3n de desarrolladores a crear sitios que funcionan en cualquier navegador. Y aunque en muchos aspectos ha sido reemplazada por nuevas bibliotecas, frameworks y paradigmas, jQuery desempe\u00f1\u00f3 un papel enorme y positivo en la creaci\u00f3n de la web moderna.<\/p>\n<p>Si la funcionalidad de jQuery no cambia significativamente, es bastante probable que en los pr\u00f3ximos a\u00f1os el uso de la biblioteca siga disminuyendo lenta pero constantemente. Los nuevos sitios web, por lo general, se crean desde el principio utilizando frameworks m\u00e1s modernos, y los escenarios de uso adecuados para jQuery se presentan cada vez menos.<\/p>\n<p>A algunos no les gusta la rapidez con la que quedan obsoletos las herramientas de desarrollo web, pero para m\u00ed eso es un testimonio del r\u00e1pido progreso. jQuery nos permiti\u00f3 hacer muchas cosas mejor. Lo mismo es cierto para sus sucesores.<br \/>\n<br \/>Fuente: <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.2 - 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\/es\/blog\/news\/istoriya-i-nasledie-jquery\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\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\/es\/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 y legado de jQuery | ProHoster","description":"jQuery \u2014","canonical_url":"https:\/\/prohoster.info\/es\/blog\/news\/istoriya-i-nasledie-jquery","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","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\/es\/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\/es\/wp-json\/wp\/v2\/posts\/38523","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=38523"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/38523\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/28907"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=38523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=38523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=38523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}