stringtranslate.com

Инструментарий Додзё

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 — это компоненты, включающие код JavaScript , разметку HTML и объявления стилей CSS , которые обеспечивают мультибраузерность (не путать с кроссбраузерностью ) интерактивные функции:

Асинхронная связь

Одной из важных особенностей приложений 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]

Поддержка Adobe Integrated Runtime (AIR)

Dojo можно использовать в приложениях Adobe AIR на основе JavaScript . Он был изменен в соответствии с требованиями безопасности 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.

Смотрите также

Рекомендации

  1. ^ ab «Краткая история Додзё — Инструментарий Додзё — Справочное руководство». dojotoolkit.org . Проверено 16 января 2024 г.
  2. ^ "Блог Додзё". додзе.io . Проверено 16 января 2024 г.
  3. ^ «Выпуск v8.0.0-beta.3 · dojo/framework · GitHub» . github.com . 2 марта 2021 г. . Проверено 10 марта 2021 г.
  4. ^ «Примеры · TypeScript» . Архивировано из оригинала 27 марта 2016 года.
  5. ^ ab «Лицензия на набор инструментов Dojo». Инструментарий Додзё . Проверено 17 апреля 2017 г.
  6. ^ «JQuery Foundation и Dojo Foundation объединяются» . Официальный блог jQuery . 1 сентября 2015 года . Проверено 2 июля 2018 г.
  7. ^ «JQuery Foundation и Dojo Foundation объединяются» . ПРВеб . 1 июля 2015 года . Проверено 2 июля 2018 г.
  8. ^ «Объявление о создании JS Foundation!». СайтПен . 17 октября 2016 г. Проверено 2 июля 2018 г.
  9. ^ «Что такое асинхронный JavaScript и XML (AJAX)?». TheServerSide.com . Проверено 4 июля 2023 г.
  10. ^ «Проникновение версии Adobe Flash Player» . Сайт Adobe .
  11. ^ "Данные Додзё" . 11 января 2007 года. Архивировано из оригинала 13 февраля 2007 года . Проверено 3 февраля 2007 г.
  12. ^ «Блог о разработке и JavaScript» .
  13. ^ ab «Интервью с создателем Dojo Toolkit Диланом Шиманном». Неттутс+ . 16 августа 2012 года . Проверено 21 ноября 2012 г.
  14. ^ «Выпущено Додзё 1.7!». Блог о наборе инструментов Dojo . 1 января 2011 года . Проверено 21 ноября 2012 г.
  15. ^ «Что будет в Додзё 1.8» . Блог о наборе инструментов Dojo . 9 февраля 2012 года . Проверено 21 ноября 2012 г.
  16. ^ ab «В чем смысл додзё 2.0» . участники додзё . 11 октября 2012 года . Проверено 29 ноября 2012 г.Архивировано 1 декабря 2017 г. в Wayback Machine.
  17. Шиманн, Дилан (30 апреля 2012 г.). «jQuery и долгосрочная жизнеспособность Dojo». Додзё-интерес . Архивировано из оригинала 29 октября 2014 года . Проверено 29 ноября 2012 г.
  18. ^ «Критика Додзё?». Кактус высотой семь футов . 17 августа 2012. Архивировано из оригинала 26 октября 2012 года . Проверено 21 ноября 2012 г.
  19. ^ ab "Dojo или JQuery". NotADojoGuru . 6 апреля 2012 года . Проверено 21 ноября 2012 г.

дальнейшее чтение

Внешние ссылки