Dojo toolkit
Dojo Toolkit — бібліотека мови JavaScript з відкритим кодом, чи точніше інструментарій, створений, щоб спростити швидку розробку кросплатформових AJAX-застосунків та вебсайтів. Розробка почата Алексом Расселом, Діланом Шіманом, Девідом Шонтзлером та іншими в 2004-тому. Бібліотека надає розробникам широкий спектр можливостей, від спрощення організації обміну даними з сервером, підтримки локального сховища і розбору дерева DOM, до використання готових віджетів для побудови інтерфейсу користувача (меню, wysiwyg-редактор, календар, динамічні таблиці, drag & drop, перевірка форм тощо), формування графіків/діаграм та задіяння нових технологій HTML5 (геопозиціювання, 3D-ефекти, API для сенсорних екранів). Бібліотека реалізує концепцію поділу даних та оформлення, що дозволяє підключати різні обробники в залежності від контексту, наприклад, оптимізовані для мобільних або стаціонарних систем. Офіційно підтримуються браузери (вказані мінімально підтримувані версії): Chrome 8, Firefox 3.6, Internet Explorer 6, Opera 11, Safari 5.
| |
Тип | бібліотека JavaScript |
---|---|
Розробник | Dojo Foundation |
Стабільний випуск | 1.13 (14 грудня 2017 ) |
Версії | 7.0.0 (2 червня 2020)[1] |
Репозиторій | github.com/dojo/framework |
Операційна система | Багатоплатформова |
Мова програмування | JavaScript |
Ліцензія | Модифікована Ліцензія BSD або Academic Free License (≥ 2.1) |
Вебсайт | dojotoolkit.org |
Код подвійно ліцензований під модифікованою ліцензією BSD або під Academic Free License (≥ 2.1). Існує неприбуткова організація Dojo Foundation[2] створена для поширення інструментарію.
Система віджетів
Мінімальна завантажувана частина бібліотеки Dojo Nano займає всього 4 Кб (у стислому вигляді), всі додаткові можливості, у тому числі модулі, специфічні для веб-застосунків, настільних інтерфейсів, мобільних застосунків і серверних систем, підвантажуються додатково, в міру необхідності.
Віджети
Віджети Dojo - це компоненти що містять код JavaScript, розмітку HTML, та описи стилів в CSS, які надають кросбраузерні можливості:
- Меню, закладки, та спливаючі підказки
- Таблиці що можна сортувати, динамічні діаграми, та двовимірні векторні зображення
- Анімовані ефекти (вицвітання, розгортання, ковзання), та засоби для їх створення
- Віджети візуалізації дерев, з підтримкою drag & drop
- Різноманітні форми та підпрограми їх валідації
- Календар, годинник
Теми
Можна використовувати різні теми оформлення щоб змінювати вигляд віджетів на сторінці.[3]
Властивості
Асинхронна комунікація
Основною властивістю 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"[4].
Негнучкість
Хоча Dojo пропонує багато корисних компонентів "просто з полиці", він не є гнучким, і в багатьох відношеннях роздутий. Наприклад, щоб зобразити просту таблицю даних розробник повинен вибрати компонент що намагається відтворити функціональність електронної таблиці (з редагуванням та зміною розмірів клітинок). Якщо цей варіант неприйнятний, доводиться писати новий компонент з нуля, що значно збільшує вартість розробки.
Розробка з Dojo
Розробка з Dojo може проводитись в будь-якому підходящому редакторі. Прикладами можуть бути NetBeans, Eclipse, Aptana, чи Komodo. Netbeans та Eclipse є безкоштовними, а Aptana та Komodo мають публічно доступні версії. Для багатьох IDE доступні плагіни Dojo. Для WYSIWYG розробки з використанням Dojo, можна використати WaveMaker Visual Ajax Studio.
Dojo Foundation та фінансування
IBM[5] та Sun Microsystems[6] анонсували про офіційну підтримку Dojo, включаючи внески коду.
Zend Technologies, компанія що підтримує ядро PHP, анонсувала партнерство з Dojo, щоб включити його в Zend Framework[7]
Dojo Foundation - непідприємницька організація заснована щоб допомагати проектам з відкритим кодом. Основними її цілями є допомагати впровадженню в компаніях, та заохочувати проекти фундації до співпраці між собою[2].
Її спонсорами та членами є:
- IBM
- Sun Microsystems
- JotSpot
- SitePen
- Renkoo
- TurboAjax
- OpenLaszlo
- Nexaweb
- Bea Systems
Dojo Foundation також допомагає наступним проектам:
Виноски
- Release 7.0.0 — 2020.
- The Dojo Foundation
- http://dojotoolkit.org/reference-guide/dojox/collections.html#dojox-collections
- IBM Contributes Ajax Software Development Technology to Open Source Community. IBM Press Release. 5 червня 2006. Архів оригіналу за 13 липня 2013. Процитовано 3 лютого 2007.
- Sun Joins the OpenAJAX Alliance and Dojo Foundation. Sun Microsystems Press Release. 16 червня 2006. Архів оригіналу за 13 липня 2013. Процитовано 3 лютого 2007.
- Dojo and Zend Framework Partnership Announcement
- Архівована копія. Архів оригіналу за 16 липня 2009. Процитовано 1 липня 2011.
Бібліографія
- Orchard, Leslie M. (24 листопада 2008). Concise Guide to Dojo (вид. 1st). Wrox Press. с. 264. ISBN 978-0470452028.
- Russell, Matthew A. (24 червня 2008). Dojo: The Definitive Guide (вид. 1st). O'Reilly Media. с. 500. ISBN 978-0596516482.
- Riecke, Craig; Gill, Rawld; Russell, Alex (18 червня 2008). Mastering Dojo: JavaScript and Ajax Tools for Great Web Experiences (вид. 1st). Pragmatic Bookshelf. с. 568. ISBN 978-1934356111.
- Holzner, Steven (14 грудня 2008). The Dojo Toolkit: Visual QuickStart Guide (вид. 1st). Peachpit Press. с. 208. ISBN 978-0321605122.
- Zammetti, Frank (19 вересня 2008). Practical Dojo Projects (вид. 1st). Apress. с. 500. ISBN 978-1430210665.
- Hayes, Kyle (17 листопада 2009). Getting StartED with Dojo JavaScript Toolkit (вид. 1st). Friends of Ed. с. 350. ISBN 978-1430225218. Архів оригіналу за квітень 22, 2010. Процитовано липень 1, 2011.
- Svensson, Peter (24 листопада 2008). Learning Dojo (вид. 1st). Packt Publishing. с. 264. ISBN 978-1847192684.
- Harmon, James E. (21 червня 2008). Dojo: Using the Dojo JavaScript Library to Build Ajax Applications (вид. 1st). Addison-Wesley Professional. с. 336. ISBN 978-0132358040.
- Orchard, Leslie M.; Pehlivanian, Ara; Koon, Scott; Jones, Harley (31 серпня 2009). Professional JavaScript Frameworks: Prototype,YUI, ExtJS, Dojo and MooTools (вид. 1st). Wrox Press. с. 888. ISBN 978-0470384596.