Инструментарий Додзё
![]() | |
Разработчик(и) | Фонд Додзё |
---|---|
Первоначальный выпуск | март 2005 г [1] |
Стабильная версия | 7.0.6 / 20 января 2021 г [2] |
Предварительный выпуск | 8.0.0-бета.7 / 27 апреля 2021 г [3] |
Репозиторий | Инструментарий Dojo 1.x https://github.com/dojo/dojo Dojo Framework 2+ https://github.com/dojo/framework |
Написано в | Dojo Tookit 1.x: JavaScript , Додзё >= 2.x: TypeScript [4] |
Операционная система | Кросс-платформенный |
Тип | Набор инструментов JavaScript (или библиотека ) |
Лицензия | Модифицированная лицензия BSD или Академическая свободная лицензия (≥ 2.1) [5] |
Веб-сайт | https://dojotoolkit.org , https://dojo.io/ |
Dojo Toolkit (стилизованный под dōjōtoolkit ) — это с открытым исходным кодом модульная библиотека JavaScript (или, точнее, набор инструментов JavaScript ), предназначенная для облегчения быстрой разработки кроссплатформенных приложений и веб-сайтов на основе JavaScript/ Ajax . Его основали Алекс Рассел, Дилан Шиманн, Дэвид Шонцлер и другие в 2004 году. [1] и имеет двойную лицензию : модифицированную лицензию BSD или Академическую бесплатную лицензию (≥ 2.1). [5]
Фонд Додзё был некоммерческой организацией, созданной с целью содействия внедрению набора инструментов. В 2016 году фонд объединился с jQuery Foundation и стал JS Foundation . [6] [7] [8]
Обзор
[ редактировать ]Dojo — это платформа JavaScript, ориентированная на многие потребности крупномасштабной клиентской веб-разработки. Например, Dojo абстрагирует различия между различными браузерами, чтобы предоставить API, которые будут работать во всех из них (он может даже работать на сервере под управлением Node.js ); он устанавливает основу для определения модулей кода и управления их взаимозависимостями; он предоставляет инструменты сборки для оптимизации JavaScript и CSS , создания документации и модульного тестирования; он поддерживает интернационализацию, локализацию и доступность ; и он предоставляет богатый набор часто необходимых служебных классов и виджетов пользовательского интерфейса. [ нужна ссылка ]
Dojo имеет полностью открытый исходный код . В набор инструментов входит около трёх тысяч модулей JavaScript, помимо изображений и других ресурсов. [ нужна ссылка ]
Dojo Toolkit состоит из нескольких частей:
- dojo содержит ядро и большинство невизуальных модулей.
- dijit — это библиотека модулей пользовательского интерфейса для виджетов и макета.
- dojox содержит различные модули, которые еще не считаются достаточно стабильными для включения в dojo или dijit .
- util включает в себя такие инструменты сборки, как оптимизация, документация, проверка стиля и тестирование.
Функции
[ редактировать ]![]() | Эту статью необходимо обновить . ( ноябрь 2012 г. ) |
Этот раздел нуждается в дополнительных цитатах для проверки . ( Апрель 2023 г. ) |
Виджеты
[ редактировать ]Виджеты Dojo — это компоненты, включающие JavaScript код , разметку HTML и объявления стилей CSS , которые обеспечивают мультибраузерность (не путать с кроссбраузерностью ) интерактивные функции:
- Меню , вкладки и всплывающие подсказки
- Сортируемые таблицы
- Динамические графики
- 2D векторные рисунки
- Анимированные эффекты — затухание, вытеснение и слайды — возможности для создания пользовательских эффектов анимации.
Асинхронная связь
[ редактировать ]Одной из важных особенностей приложений Ajax является асинхронная связь браузера с сервером: происходит обмен информацией и обновление представления страницы без необходимости перезагрузки всей страницы. Традиционно это делается с помощью объекта JavaScript XMLHttpRequest . Dojo предоставляет абстрактную оболочку ( dojo.xhr
) вокруг реализаций XMLHttpRequest в различных веб-браузерах и dojo.io
также поддерживает другие транспорты (например, скрытые IFrames ) и различные форматы данных. Используя этот подход, можно легко отправить данные, которые пользователь вводит в форму, на сервер «за кулисами»; Затем сервер может ответить некоторым кодом JavaScript, который обновляет представление страницы. [9]
Система упаковки
[ редактировать ]Dojo предоставляет систему пакетов для облегчения модульной разработки функциональности в отдельных пакетах и подпакетах; базовый сценарий начальной загрузки Dojo инициализирует набор иерархических пространств имен пакетов — «io», «event» и т. д. — в корневом пространстве имен «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% компьютеров, подключенных к Интернету, [10] это делает механизм хранения доступным для большей части установленной базы Интернета. Для веб-приложения, загруженного из файловой системы, т. е. из URL-адреса file://, хранилище Dojo будет прозрачно использовать XPCOM в Firefox и ActiveX в Internet Explorer для сохранения информации. Программист, использующий Dojo Storage, абстрагируется от используемого механизма хранения и ему предоставляется простая абстракция хэш-таблицы с такими методами, как put() и get().Dojo Storage не поддерживается в версиях позже 1.3. [ нужна ссылка ]
Хранение данных на стороне сервера
[ редактировать ]По состоянию на январь 2007 года Dojo включает следующие примеры реализации хранилища данных на стороне сервера в пространстве имен dojo.data : [11]
- CsvStore : хранилище только для чтения, которое считывает табличные данные из значений, разделенных запятыми. файлов
- OpmlStore : хранилище только для чтения, которое считывает иерархические данные из OPML. файлов формата
- YahooStore : магазин, доступный только для чтения, который извлекает результаты поиска из Yahoo! Поиск веб-сервиса
- DeliciousStore : хранилище, доступное только для чтения, которое извлекает закладки из del.icio.us. веб-сервиса
- RdfStore : хранилище для чтения и записи, которое использует SPARQL для взаимодействия с серверами данных RDF, включая, например, сервер приложений Rhizome RDF.
Поддержка Adobe Integrated Runtime (AIR)
[ редактировать ]Dojo можно использовать в JavaScript на основе приложениях Adobe AIR . Он был изменен в соответствии с требованиями безопасности AIR.
SitePen, консалтинговая компания Dojo, создала приложение Adobe AIR под названием «Dojo Toolbox» с использованием Dojo. Он включает в себя средство просмотра API и графический интерфейс системы сборки Dojo. Обычно система сборки запускается из Rhino, но в этом приложении AIR систему сборки можно запускать из AIR без использования Java. [12]
Критика
[ редактировать ]Загрузка
[ редактировать ]Более ранние версии Dojo имели репутацию громоздких и медленно загружающихся. [13] Также требовалась дополнительная работа для загрузки Dojo между доменами, например, из CDN . Решение этих проблем было основной целью Dojo 1.7, в котором было представлено асинхронное определение модулей (AMD) и «нано»-загрузчик. [14]
Документация
[ редактировать ]Dojo уже давно критикуют за неполную, разрозненную и устаревшую документацию. Признавая это, разработчики внесли огромные улучшения в документацию для версии 1.8, включая новые учебные пособия, API-браузер, дополнив недостающие части и обновив большинство примеров в стиле AMD . [15] [16]
О Dojo написано множество книг, но все они основаны на Dojo 1.3 или более ранних версиях, которые уже устарели на несколько лет. Поскольку они предшествовали поддержке AMD и сопровождающей ее реорганизации, примеры в этих книгах почти всегда основаны на вещах, которые сейчас устарели и больше не являются лучшими практиками. Большинство авторов ждут Dojo 2.0, прежде чем публиковать что-то новое. [17]
Кривая обучения
[ редактировать ]Многие отметили, что Dojo кажется трудным для изучения и начала работы, особенно по сравнению с более популярным jQuery . [18] [19]
Один из создателей Dojo Дилан Шиманн признает это из-за различий в возможностях: «Конечно, легче выучить что-то меньшее, чем что-то, что делает больше, но наши заядлые пользователи сразу отмечают, что немного больше обучения заранее экономит им бесчисленное количество часы на вещи, которые в Додзё делаются легко». [13]
Стабильность API
[ редактировать ]Первые пользователи столкнулись с трудностью перехода на версию 1.0 после того, как инструментарий был полностью переписан. [16] Переход на AMD в последних версиях оказался столь же проблематичным. [19] Dojo приложила огромные усилия для поддержания обратной совместимости, несмотря на свое быстрое развитие: большая часть текущего API устарела, но все еще поддерживается, но пользователи часто обнаруживали, что обновления проходили не так гладко, как хотелось бы.
В версии Dojo 2.0 удалена большая часть устаревшего API и переключен с JavaScript на TypeScript.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б «Краткая история Додзё — Инструментарий Додзё — Справочное руководство» . dojotoolkit.org . Проверено 16 января 2024 г.
- ^ «Блог Додзё» . додзе.io . Проверено 16 января 2024 г.
- ^ «Выпуск v8.0.0-beta.3 · dojo/framework · GitHub» . github.com . 2 марта 2021 г. . Проверено 10 марта 2021 г.
- ^ «Примеры · TypeScript» . Архивировано из оригинала 27 марта 2016 года.
- ^ Jump up to: а б «Лицензия на набор инструментов Dojo» . Инструментарий Додзё . Проверено 17 апреля 2017 г.
- ^ «JQuery Foundation и Dojo Foundation объединяются» . Официальный блог jQuery . 1 сентября 2015 года . Проверено 2 июля 2018 г.
- ^ «JQuery Foundation и Dojo Foundation объединяются» . ПРВеб . 1 июля 2015 года . Проверено 2 июля 2018 г.
- ^ «Объявляем о создании JS Foundation!» . СайтПен . 17 октября 2016 г. Проверено 2 июля 2018 г.
- ^ «Что такое асинхронный JavaScript и XML (AJAX)?» . TheServerSide.com . Проверено 4 июля 2023 г.
- ^ «Проникновение версии Adobe Flash Player» . Сайт Adobe .
- ^ «Данные Додзё» . 11 января 2007. Архивировано из оригинала 13 февраля 2007 года . Проверено 3 февраля 2007 г.
- ^ «Блог о разработке и JavaScript» .
- ^ Jump up to: а б «Интервью с создателем Dojo Toolkit Диланом Шиманном» . Неттутс+ . 16 августа 2012 года . Проверено 21 ноября 2012 г.
- ^ «Додзё 1.7 выпущено!» . Блог о наборе инструментов Dojo . 1 января 2011 года . Проверено 21 ноября 2012 г.
- ^ «Что будет в Додзё 1.8» . Блог о наборе инструментов Dojo . 9 февраля 2012 года . Проверено 21 ноября 2012 г.
- ^ Jump up to: а б «В чем смысл существования додзё 2.0» . участники додзё . 11 октября 2012 года . Проверено 29 ноября 2012 г. Архивировано 1 декабря 2017 г. в Wayback Machine.
- ^ Шиманн, Дилан (30 апреля 2012 г.). «jQuery и долгосрочная жизнеспособность Dojo» . Додзё-интерес . Архивировано из оригинала 29 октября 2014 года . Проверено 29 ноября 2012 г.
- ^ «Критика Додзё?» . Кактус высотой семь футов . 17 августа 2012. Архивировано из оригинала 26 октября 2012 года . Проверено 21 ноября 2012 г.
- ^ Jump up to: а б «Додзё или JQuery» . NotADojoGuru . 6 апреля 2012 года . Проверено 21 ноября 2012 г.
Дальнейшее чтение
[ редактировать ]- Орчард, Лесли М. (24 ноября 2008 г.). Краткое руководство по Додзё (1-е изд.). Врокс Пресс . п. 264. ИСБН 978-0-470-45202-8 .
- Рассел, Мэтью А. (24 июня 2008 г.). Додзё: Полное руководство (1-е изд.). О'Рейли Медиа . п. 500. ИСБН 978-0-596-51648-2 .
- Рике, Крейг; Гилл, Роульд; Рассел, Алекс (18 июня 2008 г.). Освоение Dojo: инструменты JavaScript и Ajax для отличного взаимодействия с Интернетом (1-е изд.). Прагматичная книжная полка . п. 568. ИСБН 978-1-934356-11-1 .
- Хольцнер, Стивен (14 декабря 2008 г.). Dojo Toolkit: Визуальное краткое руководство (1-е изд.). Персиковая яма Пресс . п. 208. ИСБН 978-0-321-60512-2 .
- Заметти, Фрэнк (19 сентября 2008 г.). Практические проекты Додзё (1-е изд.). После п. 500. ИСБН 978-1-4302-1066-5 .
- Хейс, Кайл (17 ноября 2009 г.). Начало работы с Dojo JavaScript Toolkit (1-е изд.). Друзья Эда . п. 350. ИСБН 978-1-4302-2521-8 . Архивировано из оригинала 22 апреля 2010 года . Проверено 15 августа 2009 г.
- Свенссон, Питер (24 ноября 2008 г.). Обучение додзё (1-е изд.). Пакт Паблишинг . п. 264. ИСБН 978-1-84719-268-4 .
- Хармон, Джеймс Э. (21 июня 2008 г.). Dojo: использование библиотеки JavaScript Dojo для создания приложений Ajax (1-е изд.). Аддисон-Уэсли Профессионал . п. 336. ИСБН 978-0-13-235804-0 .
- Орчард, Лесли М.; Пехливанян, Ара; Кун, Скотт; Джонс, Харли (31 августа 2009 г.). Профессиональные фреймворки JavaScript: Prototype, YUI, ExtJS, Dojo и MooTools (1-е изд.). Врокс Пресс . п. 888. ИСБН 978-0-470-38459-6 . Архивировано из оригинала 6 июля 2011 года . Проверено 15 августа 2009 г.