jQuery

De Wikipedia, la enciclopedia libre
jQuery
Información general
Tipo de programa Biblioteca
Autor John Resig
Desarrollador Equipo de desarrollo
Modelo de desarrollo Software libre
Lanzamiento inicial 26 de agosto de 2006
Licencia MIT
Estado actual En desarrollo
Idiomas Inglés (documentación)
Información técnica
Programado en JavaScript
Plataformas admitidas véase soporte en navegadores web
Versiones
Última versión estable 3.6.0 (info) ( 02 de marzo de 2021 (3 años y 27 días))
Última versión en pruebas 3.0.0-beta114 de enero de 2016
Asistencia técnica
Foros oficiales
Soporte comercial
Enlaces

jQuery es una biblioteca multiplataforma de JavaScript, creada inicialmente por John Resig, que permite simplificar la manera de interactuar con los documentos HTML, manipular el árbol DOM, manejar eventos, desarrollar animaciones y agregar interacción con la técnica AJAX a páginas web.[1]​ Fue presentada el 14 de enero de 2006 en el BarCamp NYC. De acuerdo a un análisis de la Web (realizado en 2017) JQuery es la biblioteca de JavaScript más utilizada, por un amplio margen.[2][3]

jQuery es software libre y de código abierto, posee un doble licenciamiento bajo la Licencia MIT y la Licencia Pública General de GNU v2, permitiendo su uso en proyectos libres y privados.[4]​ jQuery, al igual que otras bibliotecas, ofrece una serie de funcionalidades basadas en JavaScript que de otra manera requerirían de mucho más código, es decir, con las funciones propias de esta biblioteca se logran grandes resultados en menos tiempo y espacio.

La sintaxis de JQuery está diseñada para facilitar la navegación por un documento, seleccionar elementos DOM, crear animaciones, manejar eventos y desarrollar aplicaciones AJAX. JQuery también proporciona capacidades para que los desarrolladores creen complementos en la parte superior de la biblioteca de JavaScript. Esto permite a los desarrolladores crear abstracciones para interacción y animación de bajo nivel, efectos avanzados y widgets temáticos de alto nivel. El enfoque modular de la biblioteca jQuery permite la creación de poderosas páginas web dinámicas y aplicaciones web.

El conjunto de características principales de jQuery (selecciones de elementos DOM, recorrido y manipulación) habilitados por su motor de selección (denominado "Sizzle" de v1.3), crearon un nuevo "estilo de programación", algoritmos de fusión y estructuras de datos DOM. Este estilo influyó en la arquitectura de otros marcos de JavaScript como YUI v3 y Dojo, lo que más tarde estimuló la creación de las API de selectores estándar.[5]

Las empresas Microsoft y Nokia anunciaron en 2008 que iban a incluir la biblioteca en sus plataformas.[6]​ Microsoft la añadiría en su IDE Visual Studio[7]​ y la usaría junto con los frameworks ASP.NET AJAX y ASP.NET MVC, mientras que Nokia la integraría con su plataforma Web Run-Time.[8]

Visión general[editar]

jQuery, en su núcleo, es una biblioteca de manipulación de Modelo de Objetos del Documento (DOM). El DOM es una representación en estructura de árbol de todos los elementos de una página web. JQuery simplifica la sintaxis para buscar, seleccionar y manipular estos elementos DOM. Por ejemplo, JQuery se puede usar para encontrar un elemento en el documento con una determinada propiedad (por ejemplo, todos los elementos con una etiqueta h1), cambiar uno o más de sus atributos (por ejemplo, color, visibilidad) o hacer que responda a un evento (por ejemplo, un clic del ratón).

jQuery también proporciona un paradigma para el manejo de eventos que va más allá de la selección y manipulación básicas de elementos DOM. La asignación de eventos y la definición de la función de devolución de llamada de eventos se realizan en un solo paso en una única ubicación en el código. JQuery también pretende incorporar otra funcionalidad de JavaScript muy utilizada (por ejemplo, entradas y salidas de fundido cuando se ocultan elementos, animaciones mediante la manipulación de las propiedades de CSS).

Los principios de desarrollo con JQuery son:

  • La separación de JavaScript y HTML: La biblioteca jQuery proporciona la sintaxis simple para añadir eventos manipuladores a la DOM utilizando JavaScript, en lugar de añadir eventos atributos HTML para llamar a funciones de JavaScript. Por lo tanto, alienta a los desarrolladores a separar completamente el código JavaScript del marcado HTML.
  • Brevedad y claridad: JQuery promueve la brevedad y la claridad con funciones como funciones "chainable" y nombres de funciones abreviados.
  • Eliminación de incompatibilidades entre navegadores: Los motores de JavaScript de diferentes navegadores difieren ligeramente, por lo que el código JavaScript que funciona para un navegador puede no funcionar para otro. Al igual que otros kits de herramientas de JavaScript, jQuery maneja todas estas inconsistencias en varios navegadores y proporciona una interfaz consistente que funciona en diferentes navegadores.
  • Extensibilidad: Los nuevos eventos, elementos y métodos pueden agregarse fácilmente y luego reutilizarse como un complemento.

Historia[editar]

JQuery fue creado originalmente en enero de 2006 en BarCamp NYC por John Resig, influenciado por la anterior biblioteca cssQuery de Dean Edwards.[9][10]​ Actualmente lo mantiene un equipo de desarrolladores liderado por Timmy Willison (con el motor de selección de jQuery, Sizzle, liderado por Richard Gibson).[11]

JQuery fue originalmente licenciada bajo el CC BY-SA 2.5 , y se le otorgó la licencia MIT en 2006.[12]​ A fines de 2006, tenía doble licencia bajo las licencias GPL y MIT.[13]​ Como esto llevó a cierta confusión, en 2012 se eliminó la GPL y ahora solo está autorizada bajo la licencia MIT.[14]

En 2015, JQuery se utilizó en el 63% del millón de sitios web principales (según BuiltWith) y en el 17% de todos los sitios web de Internet.[15]​ A partir de junio de 2018, JQuery se usa en el 73% del millón de sitios web más importantes y en el 22,4% de todos los sitios web (según BuiltWith).[16]

Desde el año 2019, JQuery se usa en el 79,47% del millón de sitios web más importantes y en el 86% de todos los sitios web (según BuiltWith), siendo la biblioteca de JavaScript más popular hasta el momento.[17][18]

Características[editar]

jQuery incluye las siguientes características:

Soporte en navegadores web[editar]

jQuery 3.0+ admite las "versiones actuales-1" (es decir, la versión estable actual del navegador y la versión anterior) de Firefox (y ESR), Chrome, Safari y Edge, así como Internet Explorer 9 y versiones más recientes. En dispositivos móviles, es compatible con iOS 7 y más reciente y Android 4.0 y más reciente.[21]

Distribución[editar]

La biblioteca JQuery normalmente se distribuye como un único archivo JavaScript que define todas sus interfaces, incluidas las funciones DOM, Eventos y Ajax. Se puede incluir dentro de una página web al vincularlo a una copia local, o al vincularlo a una de las muchas copias disponibles en los servidores públicos. JQuery tiene una red de entrega de contenido (conocido popularmente como CDN) alojada por MaxCDN.[22]​ Google en el servicio Google Hosted Libraries y Microsoft también alojan la biblioteca.[23][24]

Ejemplo de vinculación de una copia de la biblioteca localmente (desde el mismo servidor que aloja la página web):

<script src="jquery.js"></script>

Ejemplo de vinculación de una copia de la biblioteca remotamente (a través del CDN propio de JQuery):

<script src="https://code.jquery.com/jquery-3.4.0.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>

Uso[editar]

jQuery consiste en un único fichero JavaScript que contiene las funcionalidades comunes de DOM, eventos, efectos y AJAX.

La característica principal de la biblioteca es que permite cambiar el contenido de una página web sin necesidad de recargarla, mediante la manipulación del árbol DOM y peticiones AJAX. Para ello utiliza las funciones $() o jQuery().

Función $()[editar]

La forma de interactuar con la página es mediante la función $(), un alias de jQuery(), que recibe como parámetro una expresión CSS o el nombre de una etiqueta HTML y devuelve todos los nodos (elementos) que concuerden con la expresión. Esta expresión es denominada selector en la terminología de jQuery.[25]

$("#tablaAlumnos"); // Devolverá el elemento con id="tablaAlumnos"
$(".activo");       // Devolverá una matriz de elementos con class="activo"

Una vez obtenidos los nodos, se les puede aplicar cualquiera de las funciones que facilita la biblioteca.

// Se elimina el estilo (con removeClass()) y se aplica uno nuevo (con addClass()) a todos los nodos con class="activo"
$(".activo").removeClass("activo").addClass("inactivo");

O por ejemplo, efectos gráficos:

// Anima todos los componentes con class="activo"
$(".activo").slideToggle("slow");

Inicio de jQuery[editar]

Comúnmente antes de realizar cualquier acción en el documento con jQuery(), debemos percatarnos de que el documento esté listo. Para ello usamos $(document).ready();, de esta forma:

$(document).ready(function() {
   //Aquí van todas las acciones del documento.
});

Versiones[editar]

Fecha de versión Número de versión Notas adicionales
26 de agosto de 2006 1.0 Primera versión estable
31 de agosto de 2006 1.0.1
9 de octubre de 2006 1.0.2
27 de octubre de 2006 1.0.3
12 de diciembre de 2006 1.0.4 Último arreglo de la versión 1.0
14 de enero de 2007 1.1
22 de enero de 2007 1.1.1
27 de febrero de 2007 1.1.2
1 de julio de 2007 1.1.3
5 de julio de 2007 1.1.3.1
24 de agosto de 2007 1.1.4 Último arreglo de la versión 1.1
10 de septiembre de 2007 1.2
16 de septiembre de 2007 1.2.1
15 de enero de 2008 1.2.2
8 de febrero de 2008 1.2.3
19 de mayo de 2008 1.2.4
21 de mayo de 2008 1.2.5 Arreglo por mala construcción de 1.2.4
24 de mayo de 2008 1.2.6 Último arreglo de la versión 1.2
14 de enero de 2009 1.3 Se introduce el motor de selección de Sizzle en el núcleo
21 de enero de 2009 1.3.1
20 de febrero de 2009 1.3.2 Último arreglo de la versión 1.3
14 de enero de 2010 1.4 Crean una página web específica para jQuery 1.4
25 de enero de 2010 1.4.1
19 de febrero de 2010 1.4.2
16 de octubre de 2010 1.4.3
11 de noviembre de 2010 1.4.4 Último arreglo de la versión 1.4
31 de enero de 2011 1.5 Reescritura del módulo AJAX
24 de febrero de 2011 1.5.1
31 de marzo de 2011 1.5.2 Último arreglo de la versión 1.5
3 de mayo de 2011 1.6
12 de mayo de 2011 1.6.1
30 de junio de 2011 1.6.2
1 de septiembre de 2011 1.6.3
12 de septiembre de 2011 1.6.4
3 de noviembre de 2011 1.7
21 de noviembre de 2011 1.7.1
21 de marzo de 2012 1.7.2
9 de agosto de 2012 1.8
30 de agosto de 2012 1.8.1
20 de septiembre de 2012 1.8.2
13 de noviembre de 2012 1.8.3
1 de enero de 2013 1.9
  • Simplificación de la API
  • Mejorado el soporte para CSS3
  • Soporte para Source map[26]
  • Solucionados varios bugs.
30 de mayo de 2013 1.10.1 Soluciona bug grave de la versión 1.9
24 de enero de 2014 1.11
  • Velocidad de procesamiento aumentada
  • Cambios a nivel de publicación de JQuery
  • Modularidad definida por AMD
  • Eliminados layouts forzados
20 de mayo de 2016 1.12
  • Cambios a nivel de publicación de jQuery
  • Errores de la versión anterior corregidos.
18 de abril de 2013 2.0
  • Primer lanzamiento de las versiones 2.X
  • Perdida de compatibilidad con Internet Explorer (6, 7 ,8)
  • Reducción de tamaño en comparación con la versión 1.9.1
24 de enero de 2014 2.1
  • Primera actualización de las versiones 2.X
  • Menos diseños forzados
  • Gastos generales de arranque más bajos
  • Primera vez que se publica en NPM y Bower
8 de enero de 2016 2.2
  • Última actualización de las versiones 2.X
  • Mejora de rendimiento
  • Gastos generales de arranque más bajos
  • Nuevas características
9 de junio de 2016 3.0
7 de julio de 2016 3.1.0
  • Segunda actualización de las versiones 3.X
  • Correcciones de bugs de la versión anterior
22 de septiembre de 2016 3.1.1
  • Correcciones de bugs de la versión anterior
16 de marzo de 2017 3.2.0
  • Tercera actualización de las versiones 3.X
  • Soportes para propiedades CSS personalizadas
  • Corrección en errores al ajustar tamaño vertical y horizontal
20 de marzo de 2017 3.2.1
  • Cambio en el núcleo
  • Refuerzo para las dimensiones verticales y horizontales
  • Cambios en los eventos
19 de enero de 2018 3.3.0
  • Cuarta actualización de las versiones 3.X
  • Se eliminan varias funciones
  • Se deja de utilizar PhantomJS para ejecutar pruebas
20 de enero de 2018 3.3.1
  • Cambio para adaptarse a la versión 5.X de NPM
10 de abril de 2019 3.4.0
  • Quinta actualización de las versiones 3.X
  • Mejora de rendimiento en cambios de alto y ancho
  • Cambio en el manejador de evento de los input de tipo radio
  • Arreglo de vulnerabilidad
  • Eliminación de los selectores de posición
10 de abril de 2020 3.5.0
2 de marzo de 2021 3.6.0

Véase también[editar]

Referencias[editar]

  1. «jQuery: The write less, do more, JavaScript library». The jQuery Project. Consultado el 29 de abril de 2010. 
  2. «Usage of JavaScript libraries for websites». 
  3. «Libscore». Consultado el 15 de abril de 2019. 
  4. «Licencias de uso de jQuery». 
  5. "Selectors API Level 1, W3C Recommendation" (21 February 2013). This standard turned what was jQuery "helper methods" into JavaScript-native ones, and the wide use of jQuery stimulated the fast adoption of querySelector/querySelectorAll into main Web browsers.
  6. «Anuncio en el blog oficial de jQuery sobre la inclusión de la biblioteca en los productos de Microsoft y Nokia.». Consultado el 3 de abril de 2011. 
  7. «Entrada sobre el uso de jQuery en el blog de Scott Guthrie». Archivado desde el original el 1 de febrero de 2009. Consultado el 3 de abril de 2011. 
  8. «Guarana UI: A jQuery Based UI Library for Nokia WRT». Forum Nokia. Archivado desde el original el 23 de noviembre de 2009. Consultado el 30 de marzo de 2010. 
  9. York, Richard (2009). Beginning JavaScript and CSS Development with jQuery. Wiley. p. 28. ISBN 978-0-470-22779-4. 
  10. Resig, John (31 de octubre de 2007). «History of jQuery». Consultado el 15 de abril de 2019. 
  11. Willison, Timmy (4 de julio de 2012). «The New Sizzle». Consultado el 23 de abril de 2019. 
  12. jquery-under-the-mit-license on jquery.org (2006)
  13. license on jquery.org (archived 2010)
  14. jquery-licensing-changes on jquery.org (2012)
  15. «Handling 15,000 requests per second: The Growth Behind jQuery». www.maxcdn.com (en inglés estadounidense). MaxCDN. 20 de junio de 2015. Archivado desde el original el 2 de julio de 2018. Consultado el 2 de julio de 2018. 
  16. «jQuery Usage Statistics». trends.builtwith.com (en inglés). Archivado desde el original el 25 de diciembre de 2018. Consultado el 2 de julio de 2018. 
  17. «jQuery Usage Statistics». trends.builtwith.com (en inglés). Archivado desde el original el 25 de diciembre de 2018. Consultado el 23 de abril de 2018. 
  18. «JavaScript Library Usage Distribution on the Entire Internet». trends.builtwith.com (en inglés). Consultado el 23 de abril de 2018. 
  19. Resig, John (14 de enero de 2009). «jQuery 1.3 and the jQuery Foundation». jQuery Blog. Consultado el 4 de mayo de 2009. 
  20. «Compatibilidad con los navegadores web». 
  21. Browser Support | jQuery
  22. jquery.org, jQuery Foundation -. «jQuery CDN». 
  23. «Google Libraries API - Developer's Guide». code.google.com. Consultado el 11 de marzo de 2012. 
  24. «Microsoft Ajax Content Delivery Network». ASP.net. Microsoft Corporation. Consultado el 15 de abril de 2019. 
  25. «Selectors, en jQuery.com». 
  26. «Introduction to JavaScript Source Maps». 

Enlaces externos[editar]