Jump to content

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

Dojo Toolkit (до версии 2), Dojo (начиная с версии 2)
Разработчик(и) Фонд Додзё
Первоначальный выпуск март 2005 г .; 19 лет назад ( 2005-03 ) [1]
Стабильная версия
7.0.6 / 20 января 2021 г .; 3 года назад ( 20.01.2021 ) [2]
Предварительный выпуск
8.0.0-бета.7 / 27 апреля 2021 г .; 3 года назад ( 27.04.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 включает в себя такие инструменты сборки, как оптимизация, документация, проверка стиля и тестирование.

Виджеты 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]

  • 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.

См. также

[ редактировать ]
  1. ^ Jump up to: а б «Краткая история Додзё — Инструментарий Додзё — Справочное руководство» . 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. ^ Jump up to: а б «Лицензия на набор инструментов 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. ^ Jump up to: а б «Интервью с создателем Dojo Toolkit Диланом Шиманном» . Неттутс+ . 16 августа 2012 года . Проверено 21 ноября 2012 г.
  14. ^ «Додзё 1.7 выпущено!» . Блог о наборе инструментов Dojo . 1 января 2011 года . Проверено 21 ноября 2012 г.
  15. ^ «Что будет в Додзё 1.8» . Блог о наборе инструментов Dojo . 9 февраля 2012 года . Проверено 21 ноября 2012 г.
  16. ^ Jump up to: а б «В чем смысл существования додзё 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. ^ Jump up to: а б «Додзё или JQuery» . NotADojoGuru . 6 апреля 2012 года . Проверено 21 ноября 2012 г.

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

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 64b6e7e3d410c49f61b6647ebb952d27__1714990680
URL1:https://arc.ask3.ru/arc/aa/64/27/64b6e7e3d410c49f61b6647ebb952d27.html
Заголовок, (Title) документа по адресу, URL1:
Dojo Toolkit - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)