stringtranslate.com

jQuery

jQuery es una biblioteca de JavaScript diseñada para simplificar el recorrido y la manipulación del árbol DOM HTML , así como el manejo de eventos , animaciones CSS y Ajax . [3] Es un software gratuito de código abierto que utiliza la licencia MIT permisiva . [4] En agosto de 2022 , jQuery es utilizado por el 77% de los 10 millones de sitios web más populares. [5] El análisis web indica que es la biblioteca JavaScript más implementada por un amplio margen, teniendo al menos tres o cuatro veces más uso que cualquier otra biblioteca JavaScript. [5] [6]

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 sobre 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 potentes páginas web y aplicaciones web dinámicas.

El conjunto de características principales de jQuery (selección, recorrido y manipulación de elementos DOM) habilitadas por su motor de selección (llamado "Sizzle" desde v1.3), creó un nuevo "estilo de programación", fusionando algoritmos y estructuras de datos DOM. Este estilo influyó en la arquitectura de otros marcos de JavaScript como YUI v3 y Dojo , y luego estimuló la creación de la API de Selectores estándar . [7]

Microsoft y Nokia incluyen jQuery en sus plataformas. [8] Microsoft lo incluye con Visual Studio [9] para su uso dentro de los marcos ASP.NET AJAX y ASP.NET MVC de Microsoft , mientras que Nokia lo ha integrado en la plataforma de desarrollo de widgets Web Run-Time. [10]

Descripción general

jQuery, en esencia, es una biblioteca de manipulación del modelo de objetos de 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 utilizar para encontrar un elemento en el documento con una determinada propiedad (por ejemplo, todos los elementos con la h1etiqueta), cambiar uno o más de sus atributos (por ejemplo color, visibility), o hacer que responda a un evento (por ejemplo, un mouse). hacer clic).

jQuery también proporciona un paradigma para el manejo de eventos que va más allá de la selección y manipulación básica 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 del código. jQuery también pretende incorporar otras funciones de JavaScript muy utilizadas (por ejemplo, fundidos de aparición y desaparición al ocultar elementos, animaciones mediante la manipulación de propiedades CSS ).

Los principios del desarrollo con jQuery son:

Historia

jQuery fue creado originalmente en enero de 2006 en BarCamp NYC por John Resig , influenciado por la biblioteca cssQuery anterior de Dean Edwards. [11] [12] Actualmente lo mantiene un equipo de desarrolladores liderado por Timmy Willison (con el motor selector jQuery, Sizzle, dirigido por Richard Gibson). [13]

jQuery originalmente tenía la licencia CC BY-SA 2.5 y se le volvió a otorgar la licencia MIT en 2006. [14] A finales de 2006, tenía doble licencia bajo las licencias GPL y MIT. [15] Como esto generó cierta confusión, en 2012 se eliminó la GPL y ahora solo tiene la licencia MIT. [dieciséis]

Popularidad

Características

jQuery incluye las siguientes características:

Soporte del navegador

jQuery 3.0 y posteriores admiten 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 posteriores. En dispositivos móviles es compatible con iOS 7 y posteriores, y con Android 4.0 y posteriores. [21]

Distribución

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 mediante un vínculo a una copia local o mediante un vínculo a una de las muchas copias disponibles en los servidores públicos. jQuery tiene una red de entrega de contenido (CDN) alojada en MaxCDN . [22] Google en el servicio de bibliotecas alojadas en Google y Microsoft también alojan la biblioteca. [23] [24]

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

< script  src = "jquery-3.5.1.min.js" >> script >

Ejemplo de vinculación de una copia de la biblioteca desde la CDN pública de jQuery:

< script  src = "https://code.jquery.com/jquery-3.5.1.min.js"  integridad = "sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="  crossorigin = "anonymous" >> script >

Interfaz

Funciones

jQuery proporciona dos tipos de funciones , funciones de utilidad estáticas y métodos de objetos jQuery . Cada uno tiene su propio estilo de uso.

Se accede a ambos a través del identificador principal de jQuery: jQuery. Este identificador tiene un alias llamado $. [25] Se puede acceder a todas las funciones a través de cualquiera de estos dos nombres.

métodos jQuery

La jQueryfunción es una fábrica para crear un objeto jQuery que representa uno o más nodos DOM. Los objetos jQuery tienen métodos para manipular estos nodos. Estos métodos (a veces llamados comandos) se pueden encadenar ya que cada método también devuelve un objeto jQuery.

El acceso y la manipulación de múltiples nodos DOM en jQuery generalmente comienza llamando a la $función con una cadena de selección CSS. Esto devuelve un objeto jQuery que hace referencia a todos los elementos coincidentes en la página HTML . $("div.test"), por ejemplo, devuelve un objeto jQuery con todos los divelementos que tiene la clase test. Este conjunto de nodos se puede manipular llamando a métodos en el objeto jQuery devuelto.

Utilidades estáticas

Estas son funciones de utilidad y no actúan directamente sobre un objeto jQuery. Se accede a ellos como métodos estáticos en el identificador jQuery o $. Por ejemplo, $.ajax()es un método estático.

Modo sin conflicto

jQuery proporciona una $.noConflict()función que cede el control del $nombre. Esto es útil si jQuery se utiliza en una página web y también vincula otra biblioteca que exige el $símbolo como identificador. En el modo sin conflicto, los desarrolladores pueden usarlo jQuerycomo reemplazo $sin perder funcionalidad. [26]

Punto de partida típico

Normalmente, jQuery se utiliza colocando el código de inicialización y las funciones de manejo de eventos en formato . JQuery activa esto cuando el navegador ha terminado de construir el DOM para la página web actual.$(handler)

$ ( function () { // Esta función anónima se llama cuando la página ha completado la carga. // Aquí, se puede colocar código para crear objetos jQuery, manejar eventos, etc. });    

o

$ ( fn ); // La función denominada fn, definida en otro lugar, se llama cuando la página se ha cargado. 

Históricamente, $(document).ready(callback)ha sido el modismo de facto para ejecutar código después de que el DOM esté listo. Sin embargo, desde jQuery 3.0, se anima a los desarrolladores a utilizar la $(handler)firma mucho más corta. [27]

Encadenamiento

Los métodos de objetos jQuery normalmente también devuelven un objeto jQuery, lo que permite el uso de cadenas de métodos :

$ ( 'div.prueba' ) . en ( 'hacer clic' , manejarTestClick ) . addClass ( 'foo' );   

Esta línea encuentra todos div los elementos con atributo de clase test, luego registra un controlador de eventos en cada elemento para el evento "clic" y luego agrega el atributo de clase fooa cada elemento.

Ciertos métodos de objetos jQuery recuperan valores específicos (en lugar de modificar un estado). Un ejemplo de esto es el val()método que devuelve el valor actual de un elemento de entrada de texto . En estos casos, una declaración como $('#user-email').val()no se puede utilizar para encadenar ya que el valor de retorno no hace referencia a un objeto jQuery.

Creando nuevos elementos DOM

Además de acceder a los nodos DOM existentes a través de jQuery, también es posible crear nuevos nodos DOM, si la cadena pasada como argumento a la $()fábrica parece HTML. Por ejemplo, el siguiente código busca un selectelemento HTML y crea un nuevo optionelemento con el valor VAGy la etiqueta Volkswagen, que luego se agrega al menú de selección :

$ ( 'select#marcas-de-coches' ) . append ( $ ( '<opción>' ) . prop ( valor , "VAG" ) . text ( 'Volkswagen' ) );    

Ájax

Es posible realizar solicitudes Ajax (con soporte para varios navegadores ) para $.ajax()cargar y manipular datos remotos.

ps _ ajax ({ tipo : 'POST' , url : '/process/submit.php' , datos : { nombre : 'John' , ubicación : 'Boston' , }, }). luego ( función ( msg ) { alerta ( 'Datos guardados:' + msg ); }). catch ( function ( xmlHttpRequest , statusText , errorThrown ) { alerta ( 'Error en el envío de su formulario.\n\n' + 'Solicitud HTTP XML: ' + JSON . stringify ( xmlHttpRequest ) + ',\nTexto de estado: ' + statusText + ' ,\nError lanzado: ' + errorThrown ); });                                  

Este ejemplo publica los datos name=Johny location=Bostonen /process/submit.phpel servidor. Cuando finaliza esta solicitud, se llama a la función de éxito para alertar al usuario. Si la solicitud falla, alertará al usuario sobre la falla, el estado de la solicitud y el error específico.

El ejemplo anterior utiliza los métodos .then()y .catch()para registrar devoluciones de llamada que se ejecutan cuando se completa la respuesta. Estas devoluciones de llamada de promesa deben usarse debido a la naturaleza asincrónica de las solicitudes de Ajax .

complementos de jQuery

La arquitectura de jQuery permite a los desarrolladores crear código de complemento para ampliar su función. Hay miles de complementos de jQuery disponibles en la Web [28] que cubren una variedad de funciones, como ayudantes de Ajax, servicios web , cuadrículas de datos, listas dinámicas, herramientas XML y XSLT , arrastrar y soltar , eventos, manejo de cookies y ventanas modales .

Una fuente importante de complementos de jQuery es el subdominio de complementos del sitio web del Proyecto jQuery. [28] Sin embargo, los complementos de este subdominio se eliminaron accidentalmente en diciembre de 2011 en un intento de eliminar el spam del sitio. [29] El nuevo sitio es un repositorio alojado en GitHub , lo que requería que los desarrolladores volvieran a enviar sus complementos y cumplieran con los nuevos requisitos de envío. [30] jQuery proporciona un "Centro de aprendizaje" que puede ayudar a los usuarios a comprender JavaScript y comenzar a desarrollar complementos de jQuery. [31]

Historial de lanzamientos

Marco de prueba

QUnit es un marco de automatización de pruebas que se utiliza para probar el proyecto jQuery. El equipo de jQuery lo desarrolló como una biblioteca de pruebas unitarias interna. [54] El equipo de jQuery lo utiliza para probar su código y complementos, pero puede probar cualquier código JavaScript genérico, incluido el código JavaScript del lado del servidor. [54]

A partir de 2011 , el equipo de pruebas de jQuery utiliza QUnit con TestSwarm para probar cada versión del código base de jQuery. [55]

Alternativas a jQuery

Al simplificar tareas como el recorrido de documentos HTML, la animación y el manejo de eventos, la incondicional biblioteca jQuery JavaScript cambió la cara del desarrollo web. En mayo de 2019 , jQuery todavía se utiliza en el 74 por ciento de los sitios web conocidos, según el encuestador de tecnología web W3Techs. Sin embargo, algunos desarrolladores consideran ahora la biblioteca jQuery, que debutó en agosto de 2006, como una tecnología más antigua cuyo tiempo ha pasado. En los últimos años han surgido alternativas a jQuery, como la biblioteca Cash o incluso simplemente JavaScript moderno y básico, ahora que todos los navegadores web manejan JavaScript de la misma manera y jQuery ya no es necesario para resolver problemas de compatibilidad. Los argumentos en Reddit y los videos en YouTube sostienen que jQuery se ha vuelto obsoleto, o al menos no es tan esencial como lo era antes.

—  Paul Krill, InfoWorld (2019) [56]

Como la compatibilidad entre navegadores ya no es un problema tan importante, hoy en día la mayor parte de jQuery se puede reemplazar con estándares web modernos, sin perder mucha comodidad. [57] En parte debido a esto, GitHub eliminó jQuery de sus páginas en 2018. [58]

Ver también

Referencias

  1. ^ https://blog.jquery.com/2023/08/28/jquery-3-7-1-released-reliable-table-row-dimensions/
  2. ^ "Bibliotecas de código abierto y tamaños de archivos: PageCDN". páginacdn.com . Consultado el 21 de julio de 2020 .
  3. ^ "jQuery: la biblioteca de JavaScript escribe menos, haz más". El proyecto jQuery . Consultado el 29 de abril de 2010 .
  4. ^ "Licencia del proyecto jQuery". Fundación jQuery . Consultado el 11 de marzo de 2017 .
  5. ^ abc "Uso de bibliotecas JavaScript para sitios web". W3Techs . Archivado desde el original el 15 de noviembre de 2019 . Consultado el 15 de noviembre de 2019 . jQuery (74,1%) es 3,7 veces más popular que Bootstrap (19,9%).
  6. ^ ab "Libscore". Archivado desde el original el 19 de febrero de 2017 . Consultado el 11 de febrero de 2017 . Los scripts principales son 1. jQuery (692.981 sitios); 2. jQuery UI (193.680 sitios); 3. SDK de Facebook (175.369 sitios); 4. Twitter Bootstrap JS (158.288 sitios); 5. Modernizr (155.503 sitios).
  7. ^ "Selectores API Nivel 1, Recomendación W3C" (21 de febrero de 2013). Este estándar convirtió lo que eran los "métodos auxiliares" de jQuery en métodos nativos de JavaScript, y el amplio uso de jQuery estimuló su rápida adopción querySelector/querySelectorAllen los principales navegadores web.
  8. ^ Resig, John (28 de septiembre de 2008). "jQuery, Microsoft y Nokia". Blog de jQuery . jQuery . Consultado el 29 de enero de 2009 .
  9. ^ Guthrie, Scott (28 de septiembre de 2008). "jQuery y Microsoft". Blog de ScottGu . Consultado el 15 de abril de 2019 .
  10. ^ "Guarana UI: una biblioteca de UI basada en jQuery para Nokia WRT". Foro Nokia . Archivado desde el original el 16 de agosto de 2011 . Consultado el 30 de marzo de 2010 .
  11. ^ York, Richard (2009). Comenzando el desarrollo de JavaScript y CSS con jQuery. Wiley. pag. 28.ISBN _ 978-0-470-22779-4.
  12. ^ Resig, John (31 de octubre de 2007). "Historia de jQuery" . Consultado el 15 de abril de 2019 .
  13. ^ "El equipo jQuery". jquery.com . Fundación JS . Consultado el 22 de mayo de 2019 . Equipo: Timmy Willison (líder de jQuery Core), Richard Gibson (líder de Sizzle, jQuery Core).
  14. ^ jquery-bajo-la-licencia-mit en jquery.org (2006)
  15. ^ licencia en jquery.org (archivada en 2010)
  16. ^ "Cambios en la licencia de jQuery". Blog de jQuery . 10 de septiembre de 2012.
  17. ^ "Manejo de 15.000 solicitudes por segundo: el crecimiento detrás de jQuery". www.maxcdn.com . MaxCDN . 20 de junio de 2015 . Consultado el 2 de julio de 2018 .
  18. ^ ab "Estadísticas de uso de jQuery (diciembre de 2019)". tendencias.builtwith.com . 31 de diciembre de 2019. Archivado desde el original el 21 de febrero de 2020 . Consultado el 21 de febrero de 2020 .
  19. ^ "Estadísticas de uso y cuota de mercado de bibliotecas JavaScript (febrero de 2020)". W3Techs . 21 de febrero de 2020. Archivado desde el original el 21 de febrero de 2020 . Consultado el 21 de febrero de 2020 .
  20. ^ Resig, John (14 de enero de 2009). "jQuery 1.3 y la Fundación jQuery". Blog de jQuery . Consultado el 4 de mayo de 2009 .
  21. ^ Soporte del navegador | jQuery
  22. ^ jquery.org, Fundación jQuery -. "CDN de jQuery".
  23. ^ "API de bibliotecas de Google: guía para desarrolladores" . Consultado el 11 de marzo de 2012 .
  24. ^ "Red de entrega de contenido Microsoft Ajax". ASP.net . Corporación Microsoft . Consultado el 15 de abril de 2019 .
  25. ^ js.foundation, Fundación JS -. "jQuery() | Documentación de la API de jQuery". api.jquery.com . Consultado el 2 de julio de 2018 .
  26. ^ "Documentación de la API de jQuery.noConflict ()" .
  27. ^ jquery.org, Fundación jQuery -. "Guía de actualización de jQuery Core 3.0 - jQuery".
  28. ^ ab "Complementos". El proyecto jQuery . Consultado el 15 de abril de 2019 .
  29. ^ "¿Qué está pasando con el sitio de complementos de jQuery?". Blog de jQuery . Consultado el 22 de abril de 2015 .
  30. ^ "jquery/plugins.jquery.com". GitHub . Consultado el 22 de abril de 2015 .
  31. ^ "Centro de aprendizaje jQuery". Fundación jQuery . Consultado el 2 de julio de 2014 .
  32. ^ "Lanzamiento de jQuery 1.6.4". Blog de jQuery . 12 de septiembre de 2011.
  33. ^ "Lanzamiento de jQuery 1.7.2". Blog de jQuery . 21 de marzo de 2012.
  34. ^ "Lanzamiento de jQuery 1.8.3". Blog de jQuery . 13 de noviembre de 2012.
  35. ^ "Lanzamiento de jQuery 1.9.1". Blog de jQuery . 4 de febrero de 2013.
  36. ^ "Lanzamiento de jQuery 1.10.2 y 2.0.3". Blog de jQuery . 3 de julio de 2013.
  37. ^ "Lanzamiento de jQuery 1.11.3 y 2.1.4 - Edición a prueba de fallos de iOS". Blog de jQuery . 28 de abril de 2015.
  38. ^ "Lanzamiento de jQuery 1.12.4 y 2.2.4". Blog de jQuery . 20 de mayo de 2016.
  39. ^ Chesters, James (15 de junio de 2016). "El tan esperado jQuery 3.0 trae una estructura delgada". infoq.com . Consultado el 28 de enero de 2017 .
  40. ^ "¡jQuery 3.2.0 ya está disponible!". Blog de jQuery . 16 de marzo de 2017 . Consultado el 12 de marzo de 2018 .
  41. ^ "jQuery 3.3.0: un fragante ramo de obsolescencias y... ¿es una característica nueva?". Blog de jQuery . 19 de enero de 2018 . Consultado el 15 de abril de 2019 .
  42. ^ "jQuery 3.3.1: dependencias fijas en la etiqueta de lanzamiento". Blog de jQuery . 20 de enero de 2018 . Consultado el 15 de abril de 2019 .
  43. ^ "Lanzamiento de jQuery 3.4.0". Blog de jQuery . 10 de abril de 2018 . Consultado el 15 de abril de 2019 .
  44. ^ "jQuery 3.4.1: activación de eventos de enfoque en IE y búsqueda de elementos raíz en iOS 10". Blog de jQuery . Fundación jQuery.
  45. ^ "¡Lanzamiento de jQuery 3.5.0!". Blog de jQuery . 10 de abril de 2020 . Consultado el 11 de abril de 2020 .
  46. ^ "Lanzamiento de jQuery 3.5.1: corregir una regresión". Blog de jQuery . Fundación jQuery.
  47. ^ jquery.org, Fundación jQuery-. "¡Lanzamiento de jQuery 3.6.0! | Blog oficial de jQuery" . Consultado el 27 de marzo de 2021 .
  48. ^ "Lanzamiento de jQuery 3.6.4: perdón del selector" . Consultado el 8 de marzo de 2023 .
  49. ^ "jQuery v3.6.4". paquetefobia.com . Consultado el 8 de marzo de 2023 .
  50. ^ jquery.org, Fundación jQuery-. "Lanzamiento de jQuery 3.7.0: Mantener el orden | Blog oficial de jQuery".
  51. ^ "Lanzamiento de jQuery 3.7.1: dimensiones confiables de las filas de la tabla" . Consultado el 14 de septiembre de 2023 .
  52. ^ "jQuery v3.7.0". paquetefobia.com . Consultado el 11 de mayo de 2023 .
  53. ^ jquery.org, Fundación jQuery-. "¡jQuery 4.0.0 BETA!".
  54. ^ ab "Historia". qunitjs.com . Consultado el 15 de abril de 2019 .
  55. ^ "Wiki del equipo de pruebas de jQuery".
  56. ^ Krill, Paul (8 de mayo de 2019). "3 bibliotecas de JavaScript para reemplazar jQuery". InfoMundo .
  57. ^ "Es posible que no necesite jQuery". es posible que no necesites consultar.com . Consultado el 23 de abril de 2022 .
  58. ^ "Eliminar jQuery de la interfaz de GitHub.com". El blog de GitHub . 6 de septiembre de 2018 . Consultado el 21 de julio de 2021 .

Otras lecturas

enlaces externos