Dojo Toolkit — бібліотека мови JavaScript з відкритим кодом, чи точніше інструментарій, створений, щоб спростити швидку розробку кросплатформових AJAX-застосунків та вебсайтів. Розробка почата Алексом Расселом, Діланом Шіманом, Девідом Шонтзлером та іншими в 2004-тому. Бібліотека надає розробникам широкий спектр можливостей, від спрощення організації обміну даними з сервером, підтримки локального сховища і розбору дерева DOM, до використання готових віджетів для побудови інтерфейсу користувача (меню, wysiwyg-редактор, календар, динамічні таблиці, drag & drop, перевірка форм тощо), формування графіків/діаграм та задіяння нових технологій HTML5 (геопозиціювання, 3D-ефекти, API для сенсорних екранів). Бібліотека реалізує концепцію поділу даних та оформлення, що дозволяє підключати різні обробники в залежності від контексту, наприклад, оптимізовані для мобільних або стаціонарних систем. Офіційно підтримуються браузери (вказані мінімально підтримувані версії): Chrome 8, Firefox 3.6, Internet Explorer 6, Opera 11, Safari 5.

Dojo Toolkit
Тип бібліотека JavaScript
Розробник Dojo Foundation
Стабільний випуск 1.13 (14 грудня 2017; 6 років тому (2017-12-14))
Операційна система Багатоплатформова
Мова програмування JavaScript
Ліцензія Модифікована Ліцензія BSD або Academic Free License (≥ 2.1)
Репозиторій github.com/dojo/framework
Вебсайт dojotoolkit.org

Код подвійно ліцензований під модифікованою ліцензією BSD або під Academic Free License (≥ 2.1). Існує неприбуткова організація Dojo Foundation[1] створена для поширення інструментарію.

Система віджетів ред.

Мінімальна завантажувана частина бібліотеки Dojo Nano займає всього 4 Кб (у стислому вигляді), всі додаткові можливості, у тому числі модулі, специфічні для вебзастосунків, настільних інтерфейсів, мобільних застосунків і серверних систем, підвантажуються додатково, в міру необхідності.

Віджети ред.

Віджети Dojo — це компоненти що містять код JavaScript, розмітку HTML, та описи стилів в CSS, які надають кросбраузерні можливості:

Теми ред.

Можна використовувати різні теми оформлення щоб змінювати вигляд віджетів на сторінці.[2]

Властивості ред.

Асинхронна комунікація ред.

Основною властивістю Ajax застосунків є асинхронна взаємодія між браузером та сервером: інформація на сторінці оновлюється без необхідності перезавантажувати всю сторінку. Традиційно це робиться за допомогою об'єкта XMLHttpRequest. Dojo надає абстраговану обгортку (dojo.xhr) навколо реалізації XMLHttpRequest в різних браузерах, та dojo.io який також підтримує інші транспорти (такі як приховані IFrame-и). Використовуючи цей підхід, дуже легко відправити дані що користувач вводить в форму на сервер «за кулісами».

Пакетна система ред.

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

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


Критика ред.

Документація ред.

Документація до Dojo різниться за якістю, в ній багато інформації розкидано між довідковими сторінками, документацією з API та сторінками уроків, а багато сторінок документації на офіційному сайті порожні, якщо не враховувати текст на зразок «TODO: how to use the component/class/method»[3].

Негнучкість ред.

Хоча Dojo пропонує багато корисних компонентів «просто з полиці», він не є гнучким, і в багатьох відношеннях роздутий. Наприклад, щоб зобразити просту таблицю даних розробник повинен вибрати компонент що намагається відтворити функціональність електронної таблиці (з редагуванням та зміною розмірів клітинок). Якщо цей варіант неприйнятний, доводиться писати новий компонент з нуля, що значно збільшує вартість розробки.

Розробка з Dojo ред.

Розробка з Dojo може проводитись в будь-якому підходящому редакторі. Прикладами можуть бути NetBeans, Eclipse, Aptana, чи Komodo. Netbeans та Eclipse є безкоштовними, а Aptana та Komodo мають публічно доступні версії. Для багатьох IDE доступні плагіни Dojo. Для WYSIWYG розробки з використанням Dojo, можна використати WaveMaker Visual Ajax Studio.

Dojo Foundation та фінансування ред.

IBM[4] та Sun Microsystems[5] анонсували про офіційну підтримку Dojo, включаючи внески коду.

Zend Technologies, компанія що підтримує ядро PHP, анонсувала партнерство з Dojo, щоб включити його в Zend Framework[6]

Dojo Foundation — непідприємницька організація заснована щоб допомагати проектам з відкритим кодом. Основними її цілями є допомагати впровадженню в компаніях, та заохочувати проекти фундації до співпраці між собою[1].

Її спонсорами та членами є:

Dojo Foundation також допомагає наступним проектам:

  • Persevere
  • OpenRecord
  • Cometd (для парадигми потоків контенту Comet)
  • DWR
  • Lucid Desktop[7]

Виноски ред.

  1. а б The Dojo Foundation. Архів оригіналу за 29 червня 2011. Процитовано 1 липня 2011.
  2. Архівована копія. Архів оригіналу за 23 липня 2011. Процитовано 1 липня 2011.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  3. Архівована копія. Архів оригіналу за 24 серпня 2011. Процитовано 1 липня 2011.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  4. IBM Contributes Ajax Software Development Technology to Open Source Community. IBM Press Release. 5 червня 2006. Архів оригіналу за 13 липня 2013. Процитовано 3 лютого 2007.
  5. Sun Joins the OpenAJAX Alliance and Dojo Foundation. Sun Microsystems Press Release. 16 червня 2006. Архів оригіналу за 13 липня 2013. Процитовано 3 лютого 2007.
  6. Dojo and Zend Framework Partnership Announcement. Архів оригіналу за 22 липня 2011. Процитовано 1 липня 2011.
  7. Архівована копія. Архів оригіналу за 16 липня 2009. Процитовано 1 липня 2011.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)


Бібліографія ред.

Посилання ред.