Dojo

Dojo (доджо) - вільна модульна бібліотека JavaScript. Розроблена з метою спростити прискорену розробку заснованих на JavaScript або AJAX додатків і сайтів. Розробка бібліотеки була розпочата Алексом Русселом в 2004. Бібліотека знаходиться під подвійний ліцензією : BSD License і Academic Free License. Dojo Foundation - некомерційна організація, створена для просування Dojo. Dojo використовується в Zend Framework, починаючи з версії 1.6.0.


1. Можливості

1.1. Елементи інтерфейсу

Елементи інтерфейсу dojo - це пакети, сформовані з компонентів: JavaScript -коду, розмітки HTML і CSS. Вони можуть бути використані для додавання різних інтерактивних можливостей до сайту:

  • меню, закладок, спливаючих підказок;
  • селекторів дати, часу; годин;
  • сортованому таблиць, динамічних діаграм, векторної 2D графіки;
  • елементів інтерфейсу "дерево", з можливостями drag-and-drop (nested sets, вкладені безлічі);
  • Rich Text Editor;
  • різних HTML-форм з можливістю перевірки вводу користувача;
  • анімованих ефектів, і можливостей побудови своїх власних ефектів.

1.2. Асинхронна зв'язок

Однією з важливих особливостей AJAX-додатків є асинхронна зв'язок між браузером і сервером: завдяки обміну інформацією, вид сторінки оновлюється без перезавантаження сторінки. Зазвичай це робиться за допомогою JavaScript -об'єкта XMLHttpRequest. Dojo надає клас-"обгортку" ( dojo.io.bind), який дозволяє абстрагуватися від різних реалізацій XMLHttpRequest в браузерах, в тому числі працюючих через iframe. Використовуючи цю технологію, стає просто створювати додатки, що передають вводяться користувачем дані на сервер. Сервер може відповісти на це певним javascript'ом і оновити вигляд сторінки.


1.3. JavaScript-програмування

Багато можливості dojo полегшують програмування на JavaScript.

  • Абстракція від середовища виконання; Dojo надає можливості для визначення та роботи з різними веб-браузерами та іншими середовищами виконання JavaScript (такими як Rhino).
  • Dojo підтримує розробку та розповсюдження власних елементів інтерфейсу і включає в себе бібліотеку утиліт для маніпуляцій з DOM.
  • Система подій, яка дозволяє реагувати не тільки на події DOM, але і на інші події, такі як, наприклад, виклик певної функції. Це дозволяє більшою мірою використовувати аспектно-орієнтоване програмування.
  • Абстрагований інтерфейс для маніпулювання JavaScript-класами, що надає можливість наслідування і дозволяє розширювати існуючі класи за допомогою набору функцій, замість того, щоб управляти безпосередньо прототипами об'єктів.

1.4. Система пакетів

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


1.5. Сховище на стороні клієнта

Dojo надає абстрактне сховище даних на стороні клієнта - Dojo Storage. Dojo Storage дозволяє веб-додаткам зберігати мегабайти даних на стороні клієнта, постійно і захищено, з правами користувача. Dojo Storage реалізований для переважної більшості широко використовуваних веб-браузерів, включаючи Internet Explorer, Mozilla Firefox і Safari. Будучи включеною в веб-сторінку, Dojo Storage визначає найбільш прийнятний метод зберігання інформації. Для Firefox 2 використовується "рідний" інтерфейс, в інших браузерах використовується прихований Flash -аплет. Так як Flash 6 + встановлений приблизно на 95% комп'ютерів по всьому світу, [2] цей механізм зберігання інформації доступний більшості. Для тих веб-додатків, які завантажуються з файлової системи (тобто URL = file :/ / ...), Dojo Storage буде прозоро використовувати XPCOM в Firefox або ActiveX в Internet Explorer. Програміст, що використовує dojo, не зобов'язаний замислюватися про тонкощі реалізації - він просто отримує в свої руки абстраговані методи put () і get ().


1.6. Dojo Foundation і спонсорство

IBM [3] та Sun Microsystems [4] анонсували офіційну підтримку Dojo, включаючи внесок у розробку ядра бібліотеки. Dojo Foundation - некомерційна організація, створена для підтримки і просування Dojo. Її членами та спонсорами є:

1.7. Виноски

  1. Dojo 1.8 Released!
  2. Adobe Flash Player Version Penetration =. Статичний з першоджерела 19 лютого 2012.
  3. "Press release on www.marketwire.com". (Недоступна посилання - історія)
  4. "Press release on prnewswire.com". Статичний з першоджерела 19 лютого 2012.