Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Dojo Toolkit (стилизованный под dōj toolkit ) - это модульная библиотека JavaScript с открытым исходным кодом (или, точнее, набор инструментов JavaScript ), предназначенная для облегчения быстрой разработки кроссплатформенных приложений и веб-сайтов на основе JavaScript / Ajax . Он был запущен Алексом Расселом, Диланом Шиманом, Дэвидом Шонтцлером и другими в 2004 году [1] и имеет двойную лицензию в рамках модифицированной лицензии BSD или Academic Free License (≥ 2.1). [4]

Фонд Додзё был некоммерческой организацией, созданной с целью содействия внедрению этого инструментария. В 2016 году фонд объединился с jQuery Foundation и стал JS Foundation . [5] [6] [7]

Обзор [ править ]

Dojo - это JavaScript- фреймворк, ориентированный на множество потребностей крупномасштабной клиентской веб-разработки. Например, Dojo абстрагирует различия между различными браузерами, чтобы предоставить API, которые будут работать на всех из них (он может даже работать на сервере под Node.js ); он устанавливает структуру для определения модулей кода и управления их взаимозависимостями; он предоставляет инструменты сборки для оптимизации JavaScript и CSS, создания документации и модульного тестирования; поддерживает интернационализацию, локализацию и доступность ; и предоставляет богатый набор обычно необходимых служебных классов и виджетов пользовательского интерфейса.

Dojo полностью открыт. Весь инструментарий можно загрузить в виде ZIP-архива, а также он размещен в Google CDN . В набор инструментов входит около трех тысяч модулей JavaScript, помимо изображений и других ресурсов.

Набор инструментов Dojo состоит из нескольких частей:

  • dojo содержит основные и большинство невизуальных модулей.
  • dijit - это библиотека модулей пользовательского интерфейса для виджетов и компоновки.
  • dojox содержит различные модули, которые еще не считаются достаточно стабильными для включения в dojo или dijit .
  • util включает инструменты сборки, такие как оптимизация, документация, проверка стилей и тестирование.

Особенности [ править ]

Виджеты [ править ]

Виджеты Dojo - это компоненты, включающие в себя код JavaScript , разметку HTML и объявления стилей CSS, которые обеспечивают мультибраузерность (не путать с кроссбраузерностью ), интерактивные функции:

  • Меню , вкладки и всплывающие подсказки
  • Сортируемые таблицы
  • Динамические графики
  • 2D векторные рисунки
  • Анимированные эффекты - затухание, вытеснение и слайды - средства для создания пользовательских эффектов анимации

Асинхронная связь [ править ]

Одной из важных особенностей приложений Ajax является асинхронная связь браузера с сервером: происходит обмен информацией и обновление представления страницы без необходимости перезагрузки всей страницы. Традиционно это делается с помощью объекта JavaScript XMLHttpRequest . Dojo предоставляет абстрактную оболочку ( dojo.xhr) вокруг реализаций XMLHttpRequest в различных веб-браузерах, а dojo.ioтакже поддерживает другие виды транспорта (например, скрытые IFrames ) и различные форматы данных. Используя этот подход, можно легко получить данные, которые пользователь вводит в форму, отправленные на сервер «за кулисами»; затем сервер может ответить некоторым кодом JavaScript, который обновляет представление страницы.

Система упаковки [ править ]

Dojo предоставляет систему упаковки для облегчения модульной разработки функций в отдельных пакетах и ​​подпакетах; базовый сценарий « начальной загрузки » Dojo инициализирует набор иерархических пространств имен пакетов - «io», «событие» и т. д. - в корневом пространстве имен «dojo» . После инициализации корневого пространства имен любой пакет Dojo может быть загружен (через XMLHttpRequest или другой аналогичный транспорт) с использованием служебных функций, предоставленных в начальной загрузке. Также можно инициализировать дополнительные пространства имен внутри или параллельно с пространством имен «dojo», что позволяет расширять Dojo или разрабатывать частные пространства имен, управляемые Dojo, для сторонних библиотек и приложений.

Пакеты Dojo могут состоять из нескольких файлов и могут указывать, какие файлы составляют весь пакет. Любой пакет или файл также может указывать зависимость от других пакетов или файлов; когда пакет загружен, также будут загружены все указанные в нем зависимости.

Предоставляются обходные пути для междоменной загрузки большинства пакетов Dojo (хотя для этого требуется специализированная сборка Dojo).

Dojo также предоставляет механизм для построения «профилей»; система сборки принимает в качестве входных данных список пакетов и использует Rhino для создания единого сжатого файла JavaScript, содержащего эти пакеты и все их зависимости. Это позволяет загружать и инициализировать весь необходимый код одновременно и разрешает кэширование кода (большинство веб-браузеров не кэшируют файлы, загруженные через XMLHttpRequest [ необходима ссылка ] ). Предварительно созданные профили для некоторых распространенных вариантов использования доступны для загрузки из того же места, что и полный набор инструментов.

Клиентское хранилище данных [ править ]

Помимо предоставления функций поддержки для чтения и записи файлов cookie , Dojo ранее поддерживал локальную абстракцию хранилища на стороне клиента с именем Dojo Storage. Dojo Storage позволяет веб-приложениям постоянно и безопасно хранить данные на стороне клиента с разрешения пользователя. Он работает с существующими веб-браузерами, включая Internet Explorer , Firefox и Safari . При включении на веб-страницу Dojo Storage определяет лучший метод постоянного хранения информации. В Firefox 2 используется постоянство собственного браузера; в других браузерах он использует скрытый апплет Flash . Поскольку Flash 6+ установлен примерно на 95% компьютеров, подключенных к Интернету, [8]это делает механизм хранения доступным для большей части установленной в Интернете базы. Для веб-приложения, которое загружается из файловой системы (то есть из URL-адреса file: //), Dojo Storage будет прозрачно использовать XPCOM в Firefox и ActiveX в Internet Explorer для сохранения информации. Программист, использующий Dojo Storage, абстрагируется от используемого механизма хранения и представлен простой абстракцией хеш-таблицы с такими методами, как put () и get (). Хранилище Dojo не поддерживается в версиях позже, чем версия 1.3.

Серверное хранилище данных [ править ]

По состоянию на январь 2007 г. Dojo включает следующие примеры реализации серверного хранилища данных в пространстве имен dojo.data : [9]

  • CsvStore : хранилище только для чтения, которое считывает табличные данные из файлов значений, разделенных запятыми.
  • OpmlStore : хранилище только для чтения, которое считывает иерархические данные из файлов формата OPML.
  • YahooStore : магазин только для чтения, который получает результаты поиска из Yahoo! Веб-сервис поиска
  • DeliciousStore : магазин только для чтения, который получает закладки из веб-службы del.icio.us
  • RdfStore : хранилище для чтения и записи, которое использует SPARQL для взаимодействия с серверами данных RDF, включая, например, сервер приложений Rhizome RDF.

Поддержка Adobe Integrated Runtime (AIR) [ править ]

Dojo можно использовать в приложениях Adobe AIR на основе JavaScript . Он был изменен в соответствии с требованиями безопасности AIR.

SitePen, консалтинговая компания Dojo, с помощью Dojo создала приложение Adobe AIR под названием «Dojo Toolbox». Он включает в себя средство просмотра API и графический интерфейс для системы сборки Dojo. Обычно система сборки запускается из Rhino, но в этом приложении AIR система сборки может запускаться из AIR без использования java. [10]

История выпусков [ править ]

Набор инструментов Dojo [ править ]

Версии с 1.10 по 1.16 продолжают получать новые точечные выпуски, поскольку в них вносятся важные изменения. [18]

Додзё [ править ]

Версия 2.0 была выпущена в 2018 году. [25] Версия 2.0 и более поздние версии исключили слово «инструментарий» из названия.

Критика [ править ]

Загрузка [ редактировать ]

Ранние версии Dojo имели репутацию громоздких и медленных для загрузки. [26] Также потребовалась дополнительная работа для загрузки Dojo через домены, например, из CDN . Решение этих проблем было основной целью Dojo 1.7, который представил определение асинхронного модуля (AMD) и загрузчик "nano". [27]

Документация [ править ]

Dojo давно критикуют за неполную, разрозненную и устаревшую документацию. Понимая это, разработчики внесли огромные улучшения в документацию для версии 1.8, включая новые учебные пособия, браузер API, заполнение недостающих частей и обновление большинства примеров в стиле AMD . [28] [29]

О Додзё написано несколько книг, но все они основаны на Додзё 1.3 или более ранней версии, которые устарели на несколько лет. Поскольку это предшествовало поддержке AMD и сопутствующей реорганизации, примеры в этих книгах почти всегда основываются на вещах, которые теперь не рекомендуются и больше не являются передовой практикой. Большинство авторов ждут Dojo 2.0, прежде чем публиковать что-либо новое.[30]

Кривая обучения [ править ]

Многие отмечают, что Dojo кажется трудным для изучения и начала работы, особенно по сравнению с более популярным jQuery . [31] [32]

Один из создателей Dojo Дилан Шиманн признает это как следствие различий в их масштабах: «Конечно, легче выучить что-то меньшее, чем то, что делает больше, но наши заядлые пользователи быстро отмечают, что немного больше обучения заранее спасает их бесчисленное множество. часов для того, что упрощает Додзё ". [26]

Устойчивость API [ править ]

Первые пользователи столкнулись с трудностями при переходе на выпуск 1.0 после того, как инструментарий был полностью переписан. [29] Переход на AMD в последних версиях был также проблематичным. [32] Dojo прилагает большие усилия для поддержания обратной совместимости, несмотря на его быстрое развитие, при этом большая часть текущего API устарела, но все еще поддерживается, но пользователи часто обнаруживают, что обновления идут не так гладко, как ожидалось.

В версии Dojo 2.0 была удалена большая часть устаревшего API и произведен переход с JavaScript на TypeScript.

Фонд Додзё и спонсорство [ править ]

Фонд Dojo Foundation был некоммерческой организацией 501 (c) (6), основанной в 2005 году для помощи проектам с открытым кодом. [33] [34] Его основные цели заключаются в том, чтобы способствовать усыновлению компаний и поощрять проекты фонда к сотрудничеству друг с другом. [35]

Его спонсорами и членами являются:

  • AOL [36]
  • IBM [36]
  • SitePen [36] [37]
  • Уксебу [36]
  • TIBCO [36]
  • Бокуп [36]
  • TimeTrade [36]
  • Orange labs [36]
  • Zend
  • Google [36]
  • Renkoo
  • TurboAjax
  • OpenLaszlo
  • Nexaweb [36]
  • Sun Microsystems [36] (приобретена корпорацией Oracle )
  • JotSpot (приобретен Google )
  • Bea Systems [36] (приобретена корпорацией Oracle )
  • Mozilla [36]
  • Красноперый [36]
  • SixApart [36]
  • SpringSource / vmware [36]
  • Webtide [36]

Dojo Foundation также помогает в следующих проектах в дополнение к Dojo Toolkit:

  • AnimeJ [38]
  • CometD [38] (для парадигмы потокового контента Comet )
  • DWR [38]
  • EmbedJS [38]
  • Быстрый мессенджер
  • Общий интерфейс [38]
  • Грунт [38] [39]
  • Стажер [38] [40]
  • Набор инструментов Джеда [38]
  • Ло-даш [38] [41]
  • Lucid Desktop [38] [42]
  • Макетта [38]
  • OpenCoWeb [38]
  • OpenRecord [43]
  • Настойчиво [38] [44]
  • RequireJS [38] [45]
  • Тессель [38]
  • Wink Toolkit [38]
  • Зазл [38]

В 2006 году и IBM [46], и Sun Microsystems объявили об официальной поддержке Dojo, включая добавление кода. [47] [48] В отчете Gartner за 2009 год отмечалось, что IBM поддерживает Dojo в 30 своих продуктах. [49] Zend Technologies , компания, стоящая за ядром PHP , объявила о партнерстве с Dojo в 2008 году, включив этот инструментарий в Zend Framework . [50]

В 2016 году Dojo Foundation объединилась с jQuery Foundation и стала JS Foundation . [5] [6] [7]

См. Также [ править ]

  • Сравнение фреймворков JavaScript

Ссылки [ править ]

  1. ^ Б Краткая история Dojo
  2. ^ https://dojo.io/blog/
  3. ^ https://www.typescriptlang.org/samples/index.html
  4. ^ a b «Лицензия на набор инструментов Dojo» . Инструментарий Dojo . Проверено 17 апреля 2017 года .
  5. ^ a b «Объединение jQuery Foundation и Dojo Foundation» . Официальный блог jQuery . 1 сентября 2015 . Проверено 2 июля 2018 .
  6. ^ a b «Объединение jQuery Foundation и Dojo Foundation» . PRWeb . 1 июля 2015 . Проверено 2 июля 2018 .
  7. ^ a b "Представляем JS Foundation!" . SitePen . 2016-10-17 . Проверено 2 июля 2018 .
  8. ^ «Проникновение версии Adobe Flash Player» . Сайт Adobe .
  9. ^ «Данные Додзё» . 2007-01-11. Архивировано из оригинала на 2007-02-13 . Проверено 3 февраля 2007 .
  10. ^ [1]
  11. ^ a b c d e f g h i Визуальная история Додзё . Проверено 20 апреля 2012.
  12. ^ Б с д е е г ч я J к л м п о р OpenLogic Обмен Додзе Toolkit Загрузка . Проверено 20 апреля 2012 г.
  13. ^ Загрузчик Додзё . Проверено 20 апреля 2012 г.
  14. ^ Dojo 1.9.2 и другие
  15. ^ Выпущено Dojo 1.14
  16. ^ GitHub - dojo / dojo: Dojo 1: основная библиотека инструментария Dojo 1. , Dojo, 17.04.2019 , получено 19.04.2019
  17. ^ Выпущен Dojo 1.16
  18. ^ https://dojotoolkit.org/blog/
  19. ^ Dojo.io
  20. ^ https://dojo.io/tutorials/002_creating_an_application/
  21. ^ https://www.sitepen.com/blog/2016/08/24/the-long-and-winding-road-to-dojo-2/
  22. ^ Dojo.io
  23. ^ Объявление версии 4 Додзё
  24. Додзё 7 прибыл
  25. ^ https://dojotoolkit.org/community/roadmap/ "Дорожная карта Dojo 2"
  26. ^ a b «Интервью с создателем Dojo Toolkit Диланом Шиманом» . Nettuts + . 2012-08-16 . Проверено 21 ноября 2012 .
  27. ^ "Dojo 1.7 выпущен!" . Блог по инструментам Dojo . 2011-01-01 . Проверено 21 ноября 2012 .
  28. ^ «Что будет в Dojo 1.8» . Блог по инструментам Dojo . 2012-02-09 . Проверено 21 ноября 2012 .
  29. ^ a b "в чем смысл dojo 2.0" . додзё-участники . 2012-10-11 . Проверено 29 ноября 2012 .
  30. ^ Шиманн, Дилан (30 апреля 2012 г.). «jQuery и долгосрочная жизнеспособность Dojo» . Додзё-интерес . Проверено 29 ноября 2012 .
  31. ^ "Критика Додзё?" . Семифутовый кактус высотой . 2012-08-17. Архивировано из оригинала на 2012-10-26 . Проверено 21 ноября 2012 .
  32. ^ a b «Додзё или JQuery» . NotADojoGuru . 2012-04-06 . Проверено 21 ноября 2012 .
  33. ^ «История JavaScript: Путешествие от Netscape к Frameworks» . TechAhead . Проверено 26 июня 2020 .
  34. ^ «Объединение jQuery Foundation и Dojo Foundation» . PRWeb . Проверено 26 июня 2020 .
  35. ^ Додзё Foundation
  36. ^ a b c d e f g h i j k l m n o p q «Спонсор и пожертвование» . Фонд Додзё . Проверено 19 октября 2015 года .
  37. ^ [2]
  38. ^ Б с д е е г ч я J к л м п о р д «Удивительные проекты на Dojo Foundation» . Фонд Додзё . Проверено 19 октября 2015 года .
  39. ^ «Содействие: Лицензионное соглашение с участниками» . Хрюкать . Проверено 19 октября 2015 года .
  40. ^ [3]
  41. ^ [4]
  42. ^ "Архивная копия" . Архивировано из оригинала на 2009-07-16 . Проверено 21 мая 2009 .CS1 maint: заархивированная копия как заголовок ( ссылка )
  43. ^ "О сайте - openrecord.org" . www.openrecord.org . Проверено 26 июня 2020 .
  44. ^ [5]
  45. ^ [6]
  46. ^ «IBM вносит вклад в развитие технологии разработки программного обеспечения Ajax сообществу разработчиков ПО с открытым кодом» . Пресс-релиз IBM . 2006-06-05 . Проверено 3 февраля 2007 .
  47. ^ «Sun присоединяется к альянсу OpenAJAX и фонду Dojo Foundation» . Пресс-релиз Sun Microsystems . 2006-06-16 . Проверено 3 февраля 2007 .
  48. ^ Крил, Пол (2006-06-19). «Sun присоединяется к OpenAJAX, Dojo Foundation» . InfoWorld . Проверено 26 июня 2020 .
  49. ^ «MarketScope для технологий Ajax и многофункциональных платформ Интернет-приложений» (PDF) . Gartner Group. Декабрь 2009. Архивировано из оригинального (PDF) 3 ноября 2015 года . Проверено 17 марта 2014 года .
  50. ^ Объявление о партнерстве Dojo и Zend Framework

Дальнейшее чтение [ править ]

  • Орчард, Лесли М. (24 ноября 2008 г.). Краткое руководство по Додзё (1-е изд.). Wrox Press . п. 264. ISBN 978-0-470-45202-8.
  • Рассел, Мэтью А. (24 июня 2008 г.). Додзё: Полное руководство (1-е изд.). O'Reilly Media . п. 500. ISBN 978-0-596-51648-2.
  • Рике, Крейг; Гилл, Ролд; Рассел, Алекс (18 июня 2008 г.). Освоение Додзё: инструменты JavaScript и Ajax для большого опыта работы в Интернете (1-е изд.). Прагматическая книжная полка . п. 568. ISBN 978-1-934356-11-1.
  • Хольцнер, Стивен (14 декабря 2008 г.). The Dojo Toolkit: Visual QuickStart Guide (1-е изд.). Peachpit Press . п. 208. ISBN 978-0-321-60512-2.
  • Замметти, Франк (19 сентября 2008 г.). Практические проекты додзё (1-е изд.). Апресс . п. 500. ISBN 978-1-4302-1066-5.
  • Хейс, Кайл (17 ноября 2009 г.). Начало работы с Dojo JavaScript Toolkit (1-е изд.). Друзья Эда . п. 350. ISBN 978-1-4302-2521-8. Архивировано из оригинального 22 апреля 2010 года . Проверено 15 августа 2009 года .
  • Свенссон, Питер (24 ноября 2008 г.). Изучение Додзё (1-е изд.). Packt Publishing . п. 264. ISBN 978-1-84719-268-4.
  • Хармон, Джеймс Э. (21 июня 2008 г.). Dojo: Использование библиотеки Dojo JavaScript для создания приложений Ajax (1-е изд.). Эддисон-Уэсли Профессионал . п. 336. ISBN. 978-0-13-235804-0.
  • Орчард, Лесли М .; Пехливанян, Ара; Кун, Скотт; Джонс, Харли (31 августа 2009 г.). Профессиональные фреймворки JavaScript: Prototype, YUI, ExtJS, Dojo и MooTools (1-е изд.). Wrox Press . п. 888. ISBN 978-0-470-38459-6.

Внешние ссылки [ править ]

  • Веб-сайт набора инструментов Dojo