stringtranslate.com

Kit de herramientas de dojo

Dojo Toolkit (estilizado como dōjō toolkit ) es una biblioteca de JavaScript modular de código abierto (o más específicamente un kit de herramientas de JavaScript ) diseñada para facilitar el rápido desarrollo de aplicaciones y sitios web multiplataforma basados ​​en JavaScript/ Ajax . Fue iniciado por Alex Russell, Dylan Schiemann, David Schontzler y otros en 2004 [1] y tiene doble licencia bajo la licencia BSD modificada o la Licencia Académica Libre (≥ 2.1). [5]

La Fundación Dojo era una organización sin fines de lucro creada con el objetivo de promover la adopción del kit de herramientas. En 2016, la fundación se fusionó con jQuery Foundation para convertirse en JS Foundation . [6] [7] [8]

Descripción general

Dojo es un marco de JavaScript que aborda las numerosas necesidades del desarrollo web del lado del cliente a gran escala. Por ejemplo, Dojo abstrae las diferencias entre diversos navegadores para proporcionar API que funcionarán en todos ellos (incluso puede ejecutarse en el servidor bajo Node.js ); establece un marco para definir módulos de código y gestionar sus interdependencias; proporciona herramientas de compilación para optimizar JavaScript y CSS , generar documentación y pruebas unitarias; apoya la internacionalización, localización y accesibilidad ; y proporciona un rico conjunto de clases de utilidades y widgets de interfaz de usuario comúnmente necesarios. [ cita necesaria ]

Dojo es completamente de código abierto . El conjunto de herramientas incluye alrededor de tres mil módulos de JavaScript, además de imágenes y otros recursos. [ cita necesaria ]

El kit de herramientas de Dojo está organizado en varias partes:

Características

widgets

Los widgets de Dojo son componentes, que comprenden código JavaScript , marcado HTML y declaraciones de estilo CSS , que proporcionan funciones interactivas para múltiples navegadores (que no deben confundirse con varios navegadores ):

Comunicación asíncrona

Una característica importante de las aplicaciones Ajax es la comunicación asincrónica del navegador con el servidor: se intercambia información y se actualiza la presentación de la página sin necesidad de recargar toda la página. Tradicionalmente, esto se hace con el objeto JavaScript XMLHttpRequest . Dojo proporciona un contenedor abstracto ( dojo.xhr) alrededor de las implementaciones de XMLHttpRequest en varios navegadores web y dojo.iotambién admite otros transportes (como IFrames ocultos ) y una variedad de formatos de datos. Con este enfoque, es fácil enviar los datos que un usuario ingresa en un formulario al servidor "entre bastidores"; Luego, el servidor puede responder con algún código JavaScript que actualice la presentación de la página. [9]

Sistema de embalaje

Dojo proporciona un sistema de empaquetado para facilitar el desarrollo modular de funcionalidad en paquetes y subpaquetes individuales; el script base Dojo " bootstrap " inicializa un conjunto de espacios de nombres de paquetes jerárquicos ("io", "event", etc.) bajo un espacio de nombres raíz "dojo" . Después de la inicialización del espacio de nombres raíz, se puede cargar cualquier paquete Dojo (a través de XMLHttpRequest u otro transporte similar) utilizando las funciones de utilidad proporcionadas en el programa de arranque. También es posible inicializar espacios de nombres adicionales dentro o en paralelo al espacio de nombres "dojo", lo que permite extensiones de Dojo o el desarrollo de espacios de nombres privados administrados por Dojo para bibliotecas y aplicaciones de terceros. [ cita necesaria ]

Los paquetes Dojo pueden constar de varios archivos y pueden especificar qué archivos constituyen el paquete completo. Cualquier paquete o archivo también puede especificar una dependencia de otros paquetes o archivos; cuando se carga el paquete, también se cargarán todas las dependencias que especifique. [ cita necesaria ]

Se proporcionan soluciones alternativas para la carga entre dominios de la mayoría de los paquetes de Dojo (aunque esto requiere una compilación especializada de Dojo).

Dojo también proporciona un mecanismo para crear "perfiles"; el sistema de compilación toma como entrada una lista de paquetes y utiliza Rhino para crear un único archivo JavaScript comprimido que contiene esos paquetes y todas sus dependencias. Esto permite cargar e inicializar todo el código necesario a la vez y permite el almacenamiento en caché del código (la mayoría de los navegadores web no almacenan en caché los archivos cargados a través de XMLHttpRequest [ cita requerida ] ). Los perfiles prediseñados para algunos casos de uso comunes están disponibles para descargar desde la misma ubicación que el kit de herramientas completo.

Almacenamiento de datos del lado del cliente

Además de proporcionar funciones de soporte para la lectura y escritura de cookies , Dojo anteriormente admitía una abstracción de almacenamiento local del lado del cliente llamada Dojo Storage. Dojo Storage permite que las aplicaciones web almacenen datos en el lado del cliente, de forma persistente y segura y con el permiso del usuario. Funciona en todos los navegadores web existentes, incluidos Internet Explorer , Firefox y Safari . Cuando se incluye en una página web, Dojo Storage determina el mejor método para almacenar información de forma persistente. Firefox 2 utiliza la persistencia del navegador nativo; en otros navegadores, utiliza un subprograma Flash oculto . Dado que Flash 6+ está instalado en aproximadamente el 95% de las computadoras conectadas a la web, [10] esto hace que el mecanismo de almacenamiento sea accesible para gran parte de la base instalada de la web. Para una aplicación web cargada desde el sistema de archivos, es decir, desde una URL file://, Dojo Storage utilizará de forma transparente XPCOM en Firefox y ActiveX en Internet Explorer para conservar la información. El programador que utiliza Dojo Storage se abstrae del mecanismo de almacenamiento utilizado y se le presenta una abstracción de tabla hash simple , con métodos como put() y get(). Dojo Storage no es compatible con versiones posteriores a la 1.3. [ cita necesaria ]

Almacenamiento de datos del lado del servidor

A partir de enero de 2007, Dojo incluye los siguientes ejemplos de implementaciones de almacén de datos del lado del servidor en el espacio de nombres dojo.data : [11]

Soporte para Adobe Integrated Runtime (AIR)

Dojo se puede utilizar en aplicaciones Adobe AIR basadas en JavaScript . Ha sido modificado para cumplir con los requisitos de seguridad de AIR.

SitePen, una empresa de consultoría de Dojo, ha creado una aplicación de Adobe AIR llamada "Dojo Toolbox" utilizando Dojo. Incluye un visor API y una GUI para el sistema de compilación de Dojo. Normalmente, el sistema de compilación se ejecuta desde Rhino, pero en esta aplicación de AIR el sistema de compilación se puede ejecutar desde AIR, sin el uso de Java. [12]

Críticas

Cargando

Las versiones anteriores de Dojo tenían fama de ser voluminosas y lentas de cargar. [13] También requirió trabajo adicional para cargar Dojo en todos los dominios, por ejemplo, desde una CDN . Abordar estos problemas fue el objetivo principal de Dojo 1.7, que introdujo la definición de módulo asincrónico (AMD) y un cargador "nano". [14]

Documentación

Dojo ha sido criticado durante mucho tiempo por su documentación incompleta, dispersa y desactualizada. Al reconocer esto, los desarrolladores realizaron grandes mejoras en la documentación para la versión 1.8, incluidos nuevos tutoriales, un navegador API, completar las piezas que faltaban y actualizar la mayoría de los ejemplos al estilo AMD . [15] [16]

Se han escrito varios libros sobre Dojo, pero todos se basan en Dojo 1.3 o anterior, ahora con varios años de desactualización. Dado que estos son anteriores al soporte de AMD y la reorganización que lo acompaña, los ejemplos en estos libros casi invariablemente se basan en cosas que ahora están en desuso y que ya no son las mejores prácticas. La mayoría de los autores esperan Dojo 2.0 antes de publicar algo nuevo. [17]

Curva de aprendizaje

Muchos han comentado que parece difícil aprender y empezar a utilizar Dojo, especialmente en comparación con el más popular jQuery . [18] [19]

El cocreador de Dojo, Dylan Schiemann, reconoce esto como consecuencia de sus diferentes alcances: "Ciertamente es más fácil aprender algo que es más pequeño que algo que hace más, pero nuestros ávidos usuarios se apresuran a señalar que un poco más de aprendizaje inicial les ahorra innumerables horas para cosas que Dojo hace fáciles." [13]

Estabilidad API

Los primeros usuarios se enfrentaron a una transición difícil a la versión 1.0 después de que el kit de herramientas fuera totalmente reescrito. [16] El cambio a AMD en versiones recientes ha sido igualmente problemático. [19] Dojo se ha esforzado mucho para mantener la compatibilidad con versiones anteriores a pesar de su rápida evolución, con una gran parte de la API actual obsoleta pero aún mantenida, pero los usuarios a menudo han descubierto que las actualizaciones no se realizaron tan bien como esperaban.

La versión Dojo 2.0 eliminó gran parte de la API obsoleta y cambió de JavaScript a TypeScript.

Ver también

Referencias

  1. ^ ab "Una breve historia de Dojo - El kit de herramientas de Dojo - Guía de referencia". dojotoolkit.org . Consultado el 16 de enero de 2024 .
  2. ^ "Blog del dojo". dojo.io. ​Consultado el 16 de enero de 2024 .
  3. ^ "Lanzamiento v8.0.0-beta.3 · dojo/framework · GitHub". github.com . 2 de marzo de 2021 . Consultado el 10 de marzo de 2021 .
  4. ^ "Muestras · TypeScript". Archivado desde el original el 27 de marzo de 2016.
  5. ^ ab "Licencia de Dojo Toolkit". Kit de herramientas de Dojo . Consultado el 17 de abril de 2017 .
  6. ^ "La Fundación jQuery y la Fundación Dojo se fusionarán". Blog oficial de jQuery . 1 de septiembre de 2015 . Consultado el 2 de julio de 2018 .
  7. ^ "La Fundación jQuery y la Fundación Dojo se fusionarán". PRWeb . 1 de julio de 2015 . Consultado el 2 de julio de 2018 .
  8. ^ "¡Anuncio de la Fundación JS!". SitioPen . 17 de octubre de 2016 . Consultado el 2 de julio de 2018 .
  9. ^ "¿Qué es JavaScript y XML asincrónicos (AJAX)?". TheServerSide.com . Consultado el 4 de julio de 2023 .
  10. ^ "Penetración de la versión de Adobe Flash Player". Sitio web de Adobe .
  11. ^ "Datos del dojo". 11 de enero de 2007. Archivado desde el original el 13 de febrero de 2007 . Consultado el 3 de febrero de 2007 .
  12. ^ "Blog de desarrollo y JavaScript".
  13. ^ ab "Una entrevista con el creador de Dojo Toolkit, Dylan Schiemann". Nettuts+ . 16 de agosto de 2012 . Consultado el 21 de noviembre de 2012 .
  14. ^ "¡Lanzamiento de Dojo 1.7!". Blog del kit de herramientas de Dojo . 1 de enero de 2011 . Consultado el 21 de noviembre de 2012 .
  15. ^ "Lo que viene en Dojo 1.8". Blog del kit de herramientas de Dojo . 9 de febrero de 2012 . Consultado el 21 de noviembre de 2012 .
  16. ^ ab "¿Cuál es la razón de ser del dojo 2.0?". contribuyentes del dojo . 11 de octubre de 2012 . Consultado el 29 de noviembre de 2012 .Archivado el 1 de diciembre de 2017 en Wayback Machine.
  17. ^ Schiemann, Dylan (30 de abril de 2012). "jQuery y la viabilidad a largo plazo de Dojo". Interés del dojo . Archivado desde el original el 29 de octubre de 2014 . Consultado el 29 de noviembre de 2012 .
  18. ^ "¿Críticas al Dojo?". Cactus de siete pies de altura . 17 de agosto de 2012. Archivado desde el original el 26 de octubre de 2012 . Consultado el 21 de noviembre de 2012 .
  19. ^ ab "Dojo o JQuery". NoADojoGuru . 6 de abril de 2012 . Consultado el 21 de noviembre de 2012 .

Otras lecturas

enlaces externos