Dojo JS скачать, примеры использования dojo в DOM


Некоторые нюансы по работе с Dojo

С Доджо работает небольшое число программистов, по крайней мере, на просторах рунета. Еще меньше используют этот фреймворк на Джумле. Связано это, прежде всего, со спецификой подключения ядра.

1) Подключить ядро в главный шаблон легко, типа

— теперь Джумла подключит корректно.

2) Стили. В настоящий момент известно 4 (в высшей версии вроде 5) стилей, которые лучше внедрять как общий класс для body. Это опять-таки можно сделать непосредственно в главном шаблоне, типа

Теперь Джумла отработает как надо, подключив все необходимые стили и скрипты, а задекларированный код задаст для боди класс шаблона.

3) dijit.byId is not a function. На англоязычных форумах тоже задают таки вопросы, только не всегда ответы подойдут. Вот и у меня случился такой казус. Что интересно, так на локалке все работает отлично, а на сервере вылазит такая ошибка. Ответ оказался прост до банальности: когда я загрузил библиотеку, то в ней находилась кириллическая папка «Новая папка», из-за чего dojo не находил требуемые файлы.

У меня пока все. Может и у вас есть чем поделиться (опытом, разумеется, по работе с dojo).

03.09.2014, 15:34

Некоторые нюансы выбора БП.
Часто наши пользователи используют при выборе БП ту цифру, которая указывается на оф. сайте или.

Некоторые нюансы записи операционной системы на диск
Скажу сразу, в теме как правильно записывать диски я ответов на интересующие меня вопросы не нашёл.

Нужно добавить в алгоритм расчета гипотенузы некоторые нюансы
Помогите добавить некоторые задачи, буду очень признателен если напишите с объяснением , заранее.

SMART RGB диоды WS2812b — нужно узнать некоторые нюансы
В общем нет ничего сложного и непонятного в их работе — «0» или «1» определяется по длительности.

Hp smart array p212 controller в proliant DL180 G6 и некоторые нюансы
Постараюсь максимально информативно описать существующие вопросы. 1. В биосе (в разделе.

28.09.2014, 01:32 [ТС] 2

И снова про доджо.

Сейчас работаю над одним проектом. Изначально избрал квери, но в кастомной гроафике он не соперник доджо. да и на уровне обработки информации доджо побил все рекорды.

Но сейчас не это важно. Я работаю с доджо на Джумле, но я ленив стучать по клаве, рисуя элементы html. А пускай, думаю, этим занимается класс рнр.

Возьмем простую сабмит-кнопу

А вот эта кастомная кнопка на скрине, я в массиве забыл еще указать кастомный класс, чтобы переиграть доджо когда это надо (само видео не интересно, только для эксперимента стоит).

Что я предлагаю? А ничего, просто ищу единомышленников по джумла+доджо. Класс сейчас прикрепляю, его можно использовать не только с джумла, только убрать

Что касается класа. Он дорабатывается по мере возникающих задач. Недавно вот попросили сделать возможность переназначения класса, для кнопки и тектового поля сделал.

Что в классе не доджовкого
NBSP($param) //рисует столько сколько указано в $param (целое числовое значение)+1

Dojo JS: скачать, примеры использования dojo в DOM

Группа: Главные администраторы
Сообщений: 14349
Регистрация: 12.10.2007
Из: Twilight Zone
Пользователь №: 1

Dojo Toolkit это одновременно самый мощный и наименее используемый JavaScript фреймворк. Dojo состоит из AMD модулей, большая часть которых является виджетами. Виджеты обычно состоят из логики на JavaScript и HTML шаблона. В будущей версии 2.0 заявлена поддержка WebComponents. Dojo позволяет легко как создать полностью новый виджет, так и расширить или изменить уже существующий. В этом посте я расскажу как это делать.

Создание простейшего виджета

Для начала создадим простейший виджет.

Step 1: Создание структуры

Для объявления своего виджета нужно создать JavaScript файл со следующим содержанием:

define([
«dojo/_base/declare»,
«dijit/_Widget»,
«dijit/_TemplatedMixin»
], function(declare, _Widget, _TemplatedMixin) <
return declare([_Widget, _TemplatedMixin], <>);
>);


Пока мы просто объявили AMD модуль и указали несколько зависимостей. Первым аргументом функции declare является массив модулей от которых требуется унаследовать создаваемый модуль. Сейчас указано, что модуль наследует базовый для всех виджетов модуль dijit/_Widget и модуль _TemplatedMixin, который предоставляет шаблонизатор.

Step 2: Создание HTML представления

Создадим рядом с файлом модуля папку templates и в ней HTML файл. Назвать его лучше так же как и файл модуля. Пусть модуль называтся MyCustomWidget.js, тогда файл шаблона следует назвать MyCustomWidget.html. В файле шаблона должно находится HTML представление виджета. Причем корень обязательно должен быть один.

    указать специальные узлы, attachPoints, которые будут доступны как свойства виджета;

Для этого у нужного узла необходимо задать специальный атрибут: data-dojo-attach-point=”customNode”, где “customNode” — название свойства виджета через которое будет доступен узел. Корневой узел виджета всегда доступен через свойство domNode.

определить обработчики событий;

Для этого у нужного узла необходимо задать специальный атрибут: data-dojo-attach-event=”ondijitclick:_onClick”, где “ondijitclick” указывает на событие, которое необходимо обрабатывать, в данном случае клик, а “_onClick” — название метода, который должен выступить в роли обработчика события.

указать место подстановки значений свойств виджета при его создании.

Для этого в шаблоне нужно написать $ , где “nameProp” — название свойства.

Step 3: Связываем шаблон и данные

define([
«dojo/_base/declare»,
«dijit/_Widget»,
«dijit/_TemplatedMixin»,
«dojo/text!./templates/MyCustomWidget.html»
], function(declare, _Widget, _TemplatedMixin, template) <
return declare([_Widget, _TemplatedMixin], <
templateString: template
>);
>);

На самом деле мы могли и не выносить шаблон в отдельный файл, а сразу задать HTML как значение свойства templateString или вынести его в переменную, но, по-моему, это снижает красоту кода.

В качестве примера виджета создадим виджет выводящий фамилию и имя.

Чтобы каждый раз, когда у виджета изменяются свойства, менялись значения и в HTML, необходимо связать сеттеры свойств и attachPoints. Можно указать какое свойство какого attachPoint соответствует какому свойству виджета, а можно определить собственные сеттеры.

Если у вас есть свойство, где задание/получение значения сложнее чем просто обращение к свойству объекта, то вам нужно определить собственные сеттеры/геттеры соблюдая простые правила именования: для свойства “foo” это будут _setFooAttr/_getFooAttr. Методы set и get автоматически найдут их и вызовут в случае необходимости.

define([
«dojo/_base/declare»,
«dijit/_Widget»,
«dijit/_TemplatedMixin»,
«dojo/text!./templates/MyCustomWidget.html»
], function(declare, _Widget, _TemplatedMixin, template) <
return declare([_Widget, _TemplatedMixin], <
templateString: template,
_setSurnameAttr: < node: "surnameNode", type: "innerHTML" >,
_setNameAttr: function(val) <
this.nameNode.innerHTML = val;
this._set(«name», val);
>
>);
>);

Как вы, наверно, уже могли догадаться, описанный виджет можно подключить используя его имя и расположение. Можно использовать прямой путь до JS-файла модуля, а можно объявить свой пакет, по аналогии с dojo, dijit и dojox, и подключать файлы из него. Альтернативой является сразу использовать результат вызова функции declare.

Как работает созданный нами код можно посмотреть здесь.

Виджет состоящий из других виджетов

Виджет может состоять из других виджетов. Составляющие виджеты можно добавить динамически во время создания виджета, но удобнее объявить их сразу в шаблоне. Для этого к модулям от которых наследуется виджет необходимо добавить dijit/_WidgetsInTemplateMixin.

В качестве примера шаблона рассмотрим фрагмент шаблона слайдера, который состоит из горизонтального ползунка и текстового поля ввода:

В этом фрагменте мы объявили виджет dijit/form/HorizontalSlider, который представляет собой горизонтальный ползунок, и виджет dijit/form/TextBox — текстовое поле ввода.

Все виджеты сразу вписаны в специальную разметку и обладают:

  • свойствами с фиксированными значениями;
  • свойствами, значения которых проброшены из виджета слайдера.

Также, мы снабдили вложенные виджеты атрибутами data-dojo-attach-point, чтобы можно было обращаться к ним, как к свойствам виджета. Т.е. если мы захотим получить значение поля ввода, то нам нужно написать:

Аналогичный виджет из APS JS SDK можно увидеть в APS Fiddle.


Жизненный цикл виджета

Жизненний цикл виджета позволяет понять что именно и когда происходит.

Вы можете расширить или переопределить следующие методы:

Ваш метод конструктора будет вызван перед тем, как параметры создания будут смешаны со значением свойств по умолчанию, и может быть использован, например, для инициализации массивов.

параметры создания виджета смешиваются со значением свойств по умолчанию

Данное действие нельзя переопределить, но важно знать когда это происходит.

Данный метод вызывается перед тем как будет создано HTML представление виджета. Если нужно добавить или изменить свойства экземпляра виджета перед созданием его визуального представления — это лучшее место чтобы сделать это.

dijit/_Templated предоставляет реализацию buildRendering, которой достаточно в большинстве случаев: загрузит и прочитает шаблон, создаст DOMElements, привяжет специальные узлы и события. Итоговый результат будет помещен в this.domNode. Если вы не используете dijit/_Templated, например, используете другой шаблонизатор, тогда это то место, где вы должны его использовать.

Вызываются сеттеры для свойств, значения которых были заданы при создании экземпляра виджета или не пусты по умолчанию.

Основное место для дополнительной логики при создании виджета. Но, следует помнить, что в случае контейнерного виджета дочерние (не те, что объявлены в шаблоне) виджеты еще не добавлены и HTML представление еще не помещено в DOM.

Разбор и создание всех дочерних виджетов завершено. Виджет помещен в DOM.

Реализуйте destroy, если вам нужно выполнить какие-то дополнительные действия при уничтожении виджета.

Илон Маск рекомендует:  Столбцовая диаграмма

Работа с Web-сервисами с помощью Dojo Toolkit

Применение инструментария Dojo Toolkit для сервисов в стиле Ajax и RESTful

Данная статья посвящена работе с Web-сервисами (как простыми, так и Web-сервисами RESTful-стиля) с помощью Dojo Toolkit. Для получения максимальной пользы от данного учебного пособия на системе читателя должны быть установлены и сконфигурированы следующие компоненты:

  • Текстовый редактор или интегрированная среда разработки (IDE)
    (в данной статье используется IDE-среда Eclipse для JavaScript).
  • Web-сервер

Обзор Dojo Toolkit

Тенденция к совершенствованию т.н. «функционально насыщенных Интернет-приложений» (Rich Internet Application, RIA) приводит к появлению JavaScript-инфраструктур, помогающих Web-разработчикам создавать более привлекательные приложения.

Готовые JavaScript-библиотеки имеют множество преимуществ. Во-первых, использование кода, который уже проверен в различных браузерах и на различных платформах, способно значительно уменьшить объем необходимого тестирования для верификации функций во множестве различных браузеров, а также сократить количество ошибок в разрабатываемом коде. Во-вторых, использование уже написанного и протестированного кода экономит много времени и позволяет разработчику быстрее завершить создание своего приложения.

Попробуйте Rational Application Developer

Загрузите бесплатную пробную версию продукта IBM Rational® Application Developer for WebSphere® Software, который помогает разработчикам быстро проектировать, разрабатывать, тестировать, анализировать и развертывать высококачественные приложения с использованием Java™, Java EE (Java Platform, Enterprise Edition), Web 2.0, сервис-ориентированных архитектур (SOA) и порталов. Продукт Rational Application Developer содержит средства для быстрого изучения новых технологий Java EE и Web-технологий, для автоматической верификации, сборки и тестирования программного кода, для динамичной разработки программных продуктов, отвечающих быстро меняющимся требованиям современных потребителей программного обеспечения.

Dojo Toolkit (см. Ресурсы) – это сборник очень полезного JavaScript-кода. Dojo Toolkit предоставляет JavaScript-методы, с помощью которых разработчик может анимировать элементы, реализовать постепенное проявление/исчезновение элементов, осуществлять Ajax-вызовы и т.д.

В данной статье рассказывается, как, используя Dojo Toolkit вместе с Web-сервисами в стиле Ajax и RESTful, разработчик может предложить своим пользователям усовершенствованную функциональность и улучшенные пользовательские возможности. В статью включен пример с автоматическим дополнением текста, в котором текстовый блок заполняется в соответствии с символами, вводимыми пользователем с клавиатуры. Этот шаблон взаимодействия с пользователем при поиске получил широкое распространение и, несмотря на свою простоту, позволяет существенно облегчить пользователю процесс поиска.

Обзор Ajax

Термином Ajax обозначают совокупность технологий, позволяющих осуществлять вызовы (асинхронные) к серверу, в то время как Web-страница пользователя остается загруженной. Этот подход приобрел широкое распространение на современных Web-страницах и играет важную роль в построении функционально насыщенных Web-приложений.

В примере, включенном в данную статью, при каждом изменении пользователем текста в текстовом блоке JavaScript-код совершает вызов к серверу для получения предлагаемых значений для дополнения пользовательского текста. С одной стороны, эта дополнительная функция способна породить массу трафика. С другой стороны, если пользователь осуществляет поиск многократно, отправляя при этом всю форму, такой подход способен реально сэкономить определенный объем трафика.


Создание проекта

В данном примере используется новейшая версия Eclipse с установленным JavaScript-инструментарием. Этот инструментарий предоставляет расширенные возможности для редактирования JavaScript-кода и HTML-страниц.

Выполните нижеописанные шаги для создания проекта, который вы затем сможете использовать для создания нескольких HTML-файлов, позволяющих отслеживать эволюцию предложенного примера.

  1. Создайте новый статический Web-проект: File > New > Project.
  2. Выберите Web\Static Web Project и нажмите на Next.
  3. Введите с клавиатуры имя своего проекта (например, MyDojoExample).
  4. Нажмите New Runtime.
  5. Выберите из списка New Server и поставьте флажок в контрольном окошке Create a new local server.
  6. Введите с клавиатуры имя сервера, которое будет демонстрироваться в списке серверов, а затем введите имя каталога, в котором вы хотите опубликовать свои файлы. Как правило, это должен быть каталог, в котором вы можете публиковать пользовательские Web-файлы.
  7. Нажмите Next в мастере Static Web Project.
  8. Оставьте корень контекста таким же, как имя проекта, и не изменяйте имя папки Web-контента WebContent.
  9. Нажмите Finish. Eclipse создает для вас новый проект.

Когда вы добавляете файлы к своему проекту, Eclipse автоматически публикует файлы в каталоге, который вы сконфигурировали для своего сервера. Вы сможете увидеть этот процесс в действии, когда будете создавать свой первый HTML-файл в этом проекте – файл index.html. Вам придется модифицировать этот файл с целью включения в него поискового блока, используемого в примере.

Для создания нового HTML-файла выполните следующие шаги:

  1. Выберите папку WebContent в своем новом проекте и нажмите правую кнопку мыши для открытия контекстного меню.
  2. В меню выберите: New > HTML file.
  3. Введите с клавиатуры имя файла в поле File name и нажмите Next, чтобы открыть окно выбора HTML-шаблона.
  4. Для этого примера выберите опцию New XHTML File (1.0 strict) и нажмите на Finish.

Новый файл будет выглядеть следующим образом.

Листинг 1. Новый файл index.html

Теперь, когда у вас есть новый статический Web-проект и HTML-страница, добавим к этой HTML-странице средства входного контроля. HTML-файл содержит несколько тегов div , которые облегчают размещение полей ввода и подсказок. Результирующий HTML-файл показан в листинге 2.

Листинг 2. Файл index.html с элементами управления

Пока этот файл не очень сильно отличается от пустой версии. Большая часть работы на Web-странице делается с помощью JavaScript-кода.

Включение Dojo Toolkit

Компоненты Dojo Toolkit можно включить в проект одним из двух способов:

  • Использовать один из публичных хостингов с файлами Dojo Toolkit.
  • Загрузить JavaScript-файлы Dojo Toolkit и включить их в проект вместе со своим кодом.

Выбор метода зависит от ваших потребностей.

Использование файла на публичном хостинге

Существует несколько серьезных оснований для использования файла на публичном хостинге.

  • Использование CDN-сети (content distribution network) для хостинга файла избавляет разработчика от необходимости отслеживания этого файла на своей локальной системе.
  • Разработчику достаточно развернуть лишь один небольшой файл.

Главное неудобство использования файла на публичном хостинге состоит в том, что разработчик не имеет никакого контроля над ситуацией, если CDN-сеть недоступна (эта ситуация маловероятна, но возможна). Если по каким-либо причинам CDN-сеть будет отключена, работоспособность вашего сайта может быть нарушена. Если у вас есть внутренние Web-приложения, от которых требуется высокая готовность, рекомендуется держать скрипт-файлы Dojo Toolkit на своей локальной системе – это уменьшит количество точек отказа для вашего приложения.

Для привязки файла Dojo Toolkit из CDN-сети измените свой файл index.html, как показано в листинге 3.

Листинг 3. Включение ссылки на местоположение Dojo в CDN-сети

Загрузка и включение файла Dojo Toolkit

Если вы хотите загрузить и включить файл Dojo Toolkit в проект вместо того, чтобы ставить на него ссылку, вы можете загрузить JavaScript-код Dojo с Web-сайта, ссылка на который указана в разделе Ресурсы. После загрузки этого файла вы можете импортировать его в свой проект в среде Eclipse с помощью опции: File > Import. Согласно имеющимся соглашениям, рекомендуется создать папку с именем js или scripts, в которую вы можете поместить не только свои файлы JavaScript-кода, но и загруженные вами файлы.

Чтобы включать файлы, которые вы загрузили, в свою Web-страницу, измените файл index.html, как показано в листинге 4.

Листинг 4. Включение локальной ссылки на загруженный файл dojo.js

Теперь, когда у вас есть базовая Web-страница, можно приступить к добавлению новых функций посредством включения JavaScript-кода, вызывающего сервис.


Вызов сервиса

Теперь, когда вы создали файл index.html, а JavaScript-файл Dojo связан с вашим файлом index.html, пришло время вызвать простой сервис, который будет давать подсказки пользователю.

В данной статье приведено два различных примера вызова сервиса и получения результата. Первый пример представляет собой простой сервис, который не обязательно соответствует типичным соглашениям по URL-адресам для Web-сервисов RESTful-стиля. REST не является стандартом, однако существуют способы работы с URL-адресами, улучшающие способность к взаимодействию между клиентами и Web-сервисами RESTful-стиля. Второй пример представляет собой введение в использование метода dojox.rpc.Rest.

Использование простого сервиса

Поскольку ответ от сервиса меняется в зависимости от строки запроса, сервис должен быть написан с использованием технологии динамических Web-приложений (для получения дополнительной информации о динамических Web-приложениях обратитесь к разделу Ресурсы).Пример в листинге 5 представляет собой простой PHP-скрипт, содержащий массив имен. Базируясь на предоставленной пользователем информации, этот скрипт фильтрует список имен и добавляет их к ответу в формате XML (Extensible Markup Language).

Листинг 5. Простой сервис, написанный на PHP

Простой скрипт, который будет возвращать подобный ответ для тестирования JavaScript-кода, можно написать и на любом другом языке.

Вызов по URL-адресу из Dojo Toolkit выполняется предельно просто. Настройте аргументы для вызова, как показано в листинге 6, и передайте их в сервис.

Листинг 6. Настройка аргументов для метода dojo.xhrGet

Более подробно эти аргументы описываются в Таблице 1.

Таблица 1. Аргументы для метода dojo.xhrGet
Аргумент Описание
url В состав аргументов включен URL (не забывайте, что этот URL не соответству RESTful-соглашениям).
handleAs Имеет значение json, text или xml. PHP-скрипт представляет свой ответ в формате XML, поэтому здесь используется этот аргумент.
preventCache Используйте значение «true», если не хотите кэшировать данные. Кэширование данных ускоряет исполнение, однако оно нежелательно, если результаты являются полностью динамическими.
load функция обратного вызова, исполняемая в том случае, если сервис возвращает данные.
error функция обратного вызова, исполняемая в случае возникновения ошибки.

После задания аргументов передайте их в метод dojo.xhrGet. Полный текст программного кода показан в листинге 7.

Листинг 7. Полный текст JavaScript-кода

Помимо вызова стандартных сервисов Ajax-стиля, вы также можете использовать Dojo Toolkit для вызова Web-сервисов RESTful-стиля.

Использование RESTful-сервиса

Большинство RESTful Web-сервисов используют определенные соглашения по построению URL-адреса для вызовов определенного типа, в дополнение к HTTP-методу, используемому для этого вызова. Если вы создаете RESTful-сервис, соответствующий этим соглашениям, то для осуществления своих вызовов вы можете использовать объект dojo.rpc.Rest. Объект dojo.rpc.Rest еще больше упрощает вызовы сервисов по сравнению с традиционным подходом.

В листинге 8 показан пример вызова RESTFUL Web-сервиса с помощью Dojo Toolkit.

Листинг 8. Вызов RESTFUL Web-сервиса с помощью объекта dojo.rpc.REST

В таблице 2 перечислены примеры правильно построенных URL-адресов, соответствующих RESTful-соглашениям, и HTTP-действий, которые должны осуществляться с каждым типом сервиса. Обратите внимание, что не все браузеры поддерживают все HTTP-методы, поэтому вам необходимо выполнить тестирование и верификацию в соответствии со своими потребностями. Для широкой аудитории более предпочтительным может оказаться использование методов GET и POST.

Таблица 2. Стандартные URL-адреса, соответствующие RESTful-соглашениям
Действие HTTP-метод Пример URL-адреса
Найти объект GET http://www.example.com/hobbits/1
Найти все объекты GET http://www.example.com/hobbits/
Удалить объект DELETE http://www.example.com/hobbits/1
Создать объект POST http://www.example.com/hobbits/
Обновить новый объект PUT http://www.example.com/hobbits/1

Если вы хотите создать полную реализацию Web-сервиса RESTFUL-стиля, программные инфраструктуры помогут вам в построении URL-адресов, соответствующих RESTful-соглашениям. В разделе Ресурсы приведены ссылки на дополнительную информацию о различных инфраструктурах для разных языков.

Элегантное отображение результатов

Теперь, когда вы научились вызывать сервис с помощью кода Dojo Toolkit, вы можете обновить содержимое элемента div , включив в него результаты запроса. Это позволит пользователям видеть подсказки по мере ввода текста с клавиатуры.

Чтобы обновить значение элемента div , содержащего подсказки, воспользуйтесь методом dojo.byId для получения ссылки для div по идентификатору ID, и настройте свойство innerHTML , как показано в листинге 9. Метод dojo.byId – это псевдоним для традиционного JavaScript-метода document.getElementById.

Листинг 9. Обновление содержимого элемента

Теперь, когда вы располагаете работающим программным кодом, вы можете просмотреть свою страницу index.html в браузере. Когда вы вводите с клавиатуры какое-либо значение – например, Bag – в элементе div автоматически появляются соответствующие подсказки. Хотя технология CSS (Cascading Style Sheets) в этой статье не рассматривается, вы можете применить ее для «облагораживания» вывода, оформив элементы div в виде раскрывающегося списка подсказок, основанных на введенных пользователем символах.

Работа с долго исполняющимися сервисами

При работе с долго исполняющимися сервисами с помощью Web-браузера возникают две главные проблемы:


  • Восприятие пользователя
  • Надежность

Восприятие пользователя

Долго исполняющиеся сервисы ухудшают восприятие работы приложения пользователем, если в процессе исполнения сервиса в браузере не происходит никаких видимых изменений. Если ваша Web-страница содержит кнопку, которая осуществляет вызов Ajax-сервиса или RESTFUL-сервиса и отображает результаты, вам следует сделать что-либо с браузером, чтобы показать пользователю, что что-то происходит. В противном случае есть опасность, что пользователь будет отправлять форму многократно или просто потеряет терпение и покинет ваш сайт.

Для борьбы с этой проблемой используйте анимацию (Dojo Toolkit имеет соответствующие методы для этого) или деактивируйте кнопку Submit, чтобы пользователь не мог отправлять форму многократно. Анимированные визуальные элементы (например, идущие часы) создают у пользователя ощущение, что что-то происходит, и существенно подкрепляют его желание дождаться завершения процесса.

Надежность

При вызове долго исполняющихся сервисов с использованием Ajax могут возникать проблемы. Тем не менее вполне возможны ситуации, когда использование таких сервисов вполне оправданно. Примеры сервисов с большим временем исполнения: сервисы для агрегации данных, генерации документов, архивирования файлов и т.д.

В подобных ситуациях не рекомендуется просто вызвать сервис и ждать – особенно если время исполнения этого сервиса может составлять более нескольких секунд. Если соединение будет прервано или браузер будет закрыт, механизм обратного вызова для оповещения о завершении сервиса может не сработать.

Если вы имеете контроль над используемым сервисом, примените такой механизм, как возвращение вызывающему уникального идентификатора. Это позволит вызывающему впоследствии спросить другой метод сервиса о состоянии своего запроса. Ваш браузер может поместить это число в локальное хранилище cookie-файлов или совместно с соответствующим сервисом сохранить это число для пользователя.

Такой метод вызова сервисов позволит вам запустить процесс с большим временем исполнения на стороне сервера. В браузере вы можете реализовать запрос на уровне сервисов для выяснения состояния своего обращения (для этого можно воспользоваться объектом Timer библиотеки Dojo Toolkit). Этот метод обеспечивает пользователю как гибкость, так и стабильность.

Заключение

Помимо других возможностей, Dojo Toolkit позволяет вам осуществлять Ajax-вызовы в своем Web-приложении с целью расширения его функциональности. Обратившись к одной из CDN-сетей или загрузив файлы Dojo Toolkit в свой проект, вы можете воспользоваться заранее написанными и протестированными функциями.

Библиотека Dojo Toolkit предоставляет методы для вызова как простых Web-сервисов, использующих Ajax, так и Web-сервисов RESTful-стиля. Этот инструментарий позволит вам обрабатывать ответы от Ajax-сервисов, представленные в форматах JSON, XML и TXT.

Ресурсы для скачивания

Похожие темы

  • Дополнительная информация о Dojo Toolkit.
  • Примеры и документация по API-интерфейсу на Web-сайте Dojocampus.org.
  • Прочитайте статью RESTful web Services: The basics (developerWorks, ноябрь 2008 г.) для получения представления о базовых принципах REST.
  • Ознакомьтесь с сервисами CakePHP и REST services и прочитайте статью JAX-RS Java API for RESTful web Services.
  • Посетите Web-сайт Mastering Grails: RESTful Grails (developerWorks, сентябрь 2008 г.) и ознакомьтесь с различными способами использования Grails для создания XML вместо обычного HTML.
  • Загрузите инструментарий Eclipse >

Комментарии

Войдите или зарегистрируйтесь для того чтобы оставлять комментарии или подписаться на них.

Including dojo/dom library to Spring Roo

How is it possible to include and use the dojo/dom library in Spring roo.

Can anyone please help?

3 Answers 3

I think the version of dojo in roo is currently less than 1.7. This means you can remove the following line from your code because the remoteAttr function is part of dojo.js:

The namespace => to module path is retreived by replacing periods (.), in short — you need to replace the slash with a dot. Your require should be


Since the error is in regards to the dojo.require specified path, this means your dojo.js is found and loaded (dojo.require is not undefined) — and baseUrl is not of concern to dojo modules.

The thing is, youre using the legacy loader to pull in an AMD module, in 1.7+ the require statement has a different look to it.

Как я могу добавить стиль в узел DOM с помощью Dojo?

У меня есть некоторый яваскрипта код, который выглядит следующим образом:

Все, что я найти в интерактивной документации показывает, что dojo.style ожидает идентификатор элемента DOM, а не сам DOM узел. Что я могу сделать? Единственные другие примеры показывают, используя dojo.query (. ). Стиль (. ), который применяется стиль ко всем узлам. Я только хочу, чтобы применить его к любому другому узлу, поэтому я использую для каждого-вызова.

узел : идентификатор или ссылка узла DOM , чтобы получить / установить стиль

Какую версию Dojo вы используете? Как ПСО говорит, код вы вставили должен работать нормально ( http://jsfiddle.net/4HXMF/ ), при условии , что вы используете последнюю версию Dojo.

Dojo запрос фактически поддерживает многие новые селекторы, так что вы на самом деле может сделать:

Dojo JS: скачать, примеры использования dojo в DOM

This is the foundation package for the Dojo 1 Toolkit. While still being maintained, new development is primarily focused on modern Dojo.

Checkout the Dojo framework website or if you want a more detailed technical status and overview, checkout the Dojo roadmap .

This package is sometimes referred to as the “core”, it contains the most generally applicable sub-packages and modules. The dojo package covers a wide range of functionality like Ajax, DOM manipulation, class-type programming, events, promises, data stores, drag-and-drop and internationalization libraries.

Installation instructions are available at dojotoolkit.org/download.

If you are starting out with Dojo, the following resources are available to you:

What to Use Dojo For and When to Use It

The following is a brief sampling of some of the areas where Dojo may prove to be the right tool for your next project:

For keeping your code fast and maintainable, Dojo offers an asynchronous module definition (AMD) loader — encapsulating pieces of code into useful units, loading small JavaScript files only when they are needed, and loading files separately even when they are dependent on one another.

When you want to easily extend existing classes, share functionality among a number of classes, and maximize code reuse, Dojo provides class-like inheritance and “mixins.”

For creating advanced and customizable user interfaces out of refined, efficient, and modular pieces, Dojo’s Dijit framework offers several dozen enterprise-ready widgets — including buttons, textboxes, form widgets with built-in validation, layout elements, and much more — along with themes to lend them a consistent look. All of this is available for mobile environments as well.

For working with advanced vector graphics, Dojo’s GFX API can render graphics in a wide variety of formats, with support for seamless manipulation (skewing, rotating, resizing), gradients, responding to mouse events, and more.

The dojox/charting library supports powerful data visualization and dynamic charting, including a variety of 2D plots and animated charting elements.

When you need feature-rich, lightweight, and mobile-friendly grids/tables, Dojo offers the dgrid widget, along with customizable default themes and accompanying features such as in-cell editing, row/cell selection, column resizing/reordering, keyboard handling, pagination, and more.

Dojo is the officially supported framework for the ArcGIS API for JavaScript, one of the most widely used enterprise-grade APIs for web mapping and spatial analysis — learning to use Dojo will open doors to creating richer web mapping applications using that API.

License and Copyright

The Dojo Toolkit (including this package) is dual licensed under BSD 3-Clause and AFL. For more information on the license please see the License Information. The Dojo Toolkit is Copyright (c) 2005-2020, JS Foundation. All rights reserved.

Dojo Framework

Вялотекущие архитектурные изыскания вышли в стадию активного прототипирования клиентской части. Очень хотелось найти JS-фреймворк, одновременно предоставляющий достаточный уровень абстракции над DOM, единообразную поддержку разных событий, средства моделирования данных (чтобы не возиться с прикручиванием Backbone, Knockout и прочих), инструменты для разработки UI-компонент и обладающую уже готовым набором этих компонент. Искать пришлось довольно долго.

Довольно быстро с дистанции сошли SproutCore (который теперь Ember), Qooxdoo, dHTMLx, SmartClient, Rico. Туда же пошли монстры вроде AppCraft.

В финал вышли: jQuery UI, ExtJS, Dojo и YUI3. Отбросил YUI3, потому что где будет Yahoo даже через полгода — совсем непонятно, плюс даже третья версия показывает признаки старости. jQuery UI выглядел неплохо, но разработка его как целого тулкита у меня вызывает лёгкое недоумение (они там похоже простое дерево третий год пишут). ExtJS, особенно четвёртая его инкарнация, очень хорош, однако его лицензионные заморочки настораживают даже меня (а что скажут юристы?!). И остался Dojo Toolkit.

Пристальное изучение самого свежего Dojo 1.7 показало, что это офигенный фреймворк, незаслуженно обделённый вниманием в интернетах. Поначалу конечно подсознательно сравниваешь его с jQuery и огорчаешься от необходимости писать столько много буковок. Но когда понимаешь, что приобретаешь за такую небольшую цену — приходит настоящее счастье. Итак, что мы имеем в бонусах?


  1. Продуманную модульность с асинхронной загрузкой (AMD-compliant). Есть компактное микро-ядро, которое умеет грамотно подгружать всё остальное, разрешая зависимости на лету.
  2. Неплохой инструментарий для работы с DOM. Конечно всё не так изящно, как в jQuery, но привыкнуть можно. Можно делать запросы селекторами и скармливать результаты итераторам и прочим map’ам и reduce’ам. (Для фанатов — есть всякая продвинутая функциональщина.)
  3. Полная модель событий. На элементах поддерживаются как DOM-события, так и свои собственные. Плюс есть глобальный механизм pub/sub по именованным топикам.
  4. Есть средства моделирования данных (data stores) с набором готовых хранилищ поддерживающих JSON, CSV, OPML, YQL, RDF и др. Хранилища умеют интегрироваться с другими компонентами, вроде таблиц или графиков, обеспечивая живое обновление на лету.
  5. В Dojo имеется удобный механизм для создания независимых виджетов («dijits») и в комплекте поставляются десятки уже готовых виджетов разной степени завершённости: средства layout’a, диалоговые окна, продвинутые формы, многофункциональные таблицы и деревья, всяческие менюшки, графики, карты и многое-многое другое.
  6. Графическая подсистема с поддержкой анимации. Помимо кросс-браузерной поддержки векторной графики, в Dojo есть и весьма обширная библиотека диаграммных компонент вполне на уровне лучших платных JS-библиотек. Те, кому вдруг не хватит встроенных средств визуализации, смогут легко дополнить библиотеку своими собственными модулями — это довольно несложно.
  7. Есть методология поддержки тем оформления — как для виджетов, так и для диаграмм, с возможностью подменять темы на лету.
  8. Заявлена поддержка мобильных интерфейсов — для клиентов на iOS, Android и Blackberry. Пока не тестировал, но хочется верить что поддержка достойная.

Есть в Dojo и ещё одна крайне любопытная фича — декларативный стиль создания страниц. Работает это так: в заголовке страницы указывается флаг для подключения dojo-парсера, а затем в теле страницы создаются теги которые на лету будут заменяться на виджеты согласно свойствам описанным в атрибутах тегов (как раз в HTML5 не так давно узаконили data attributes).

Надо заметить что во всей этой бочке мёда имеется и ложка говна дёгтя. Мне кажется, что проблемы проистекают из того что это проект, создаваемый программистами для программистов. Соответственно первая проблема — это непостоянство API. Вероятность того, что найденный в интернетах пример на Dojo заработает на классах 1.7 с первого раза — мягко говоря невысокая. Где-то просто поменялись аргументы, где-то классы переехали между namespaces, а где-то и просто нет обратной совместимости. Показательно: берём примеры с официального сайта из раздела tutorials, запускаем их и видим в JS-консольке предупреждения о deprecations. То есть как только выйдет обещаемая версия Dojo 2.0 — нас опять будут ждать весёлые времена. И сюда же примыкает вторая громадная проблема — отсутствие внятной документации. Вероятность обнаружить полную документацию по, скажем, аргументам конструктора класса из dojox.*, стремится к нулю. На официальном сайте иногда можно найти примеры использования классов, иногда — подробный tutorial, но как правило страница документации содержит стандартное » >

Вообще, похоже что Dojo — проект с трудной судьбой, ведущий свою историю с лохматого 2004 года. Так что пишется он давно, в разработчиках в разное время засветились IBM, AOL, Sun и другие конторки помельче. Однако, похоже что пару раз в процессе развития им приходилось отказываться от совместимости назад, что не добавляло популярности. А в районе 2008 года их чуть было не запинал jQuery, но ребята нашли силы и средства дать отпор. И, хочется верить, продолжат движение вперёд. Дополнительную надежду даёт наличие в разработчиках нашего бородатого дядьки по имени Eugene Lazutkin. :)

Резюмируя, в общем Dojo мне понравился и, если не наткнусь на что-то совершенно фатальное, буду строить UI именно на нём. Если у кого будут вопросы по Dojo — приходите обсуждать на ХэшКод или на StackOverflow.

Dojo JS: скачать, примеры использования dojo в DOM

Приветствуем на новом сайте по программированию

Если у Вас возникли какие то идеи по поводу сайта — пишите

Ведется бета-тестирование про все найденные ошибки сообщайте на code at dobs.in.ua

Поиск

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

Категория: JavaScript -> AJAX -> Библиотеки | Дата: 2009-01-06 | Просмотров: 1964 | Загрузок: 966 | Размер файла: 100.2 Кб | Добавил: dobs

Dojo. Подробное руководство

Также интересно:

Книга подходит тем людям, которые впервые хотят познакомиться с «Dojo».

Книга подходит тем людям, которые впервые хотят познакомиться с «Dojo». Что же такое «Dojo»? Это надежный инструмент, который используется в «javascript». Данный инструмент позволяет облегчить судьбу разработчика, благодаря своей быстрой работоспособности создания веб-сайтов и приложений. В книге вам будут показаны самые продуктивные методы по созданию веб-ресурсов. Вас познакомят со всеми утилитами, которые вам пригодятся для полноценной работы. Также вы получите отличный кладезь знаний по работе с библиотекой «DojoX» и «Ajax», что позволит вам более оперативно работать с программным обеспечением. Благодаря данной книге вы сможете воплотить все ваши идея, которые вы планировали сделать по отношению к веб-сайту. Книга «Dojo. Подробное руководство» понравится тем пользователем, которые только начали оперировать в данной среде.

Мэтью А. Расселл |Символ-Плюс, 2009 | Стр. 560 | ISBN 978-5-93286-151-6 | Pdf | 11 Mb

DoJo — JavaScript нового поколения

Заглянем на новую и очень мощную библиотеку такая как Dojo. Сначало определение. Dojo — свободная модульная библиотека на JavaScript. Это подобие движка jQuery, только теперь работающий на много быстрей. На данный момент разработчики выпустили новую версию — 1.8.0

Вся справка и исходники находятся на официальном сайте разработчика, доступен только на английском языке, но хорошему программисту это не преграда! Документацию можно прочитать на сайте.

Начинаем эксперименты

Давайте на примере рассмотрим наш движок. Скачиваем .zip архив в разделе Downloads, Source. Создаём на рабочем столе папку, назовём её «dojotest». Из архива переносим «dojo» и «util» в нашу папку. Создаём файл «index.php» в блокноте:

Функцией djConfig=”parseOnLoad:true, isDebug:true” который находится в документе мы передаём параметры скрипту dojo.js и заставляем его включать парсер после полной загрузки документа, включая Debug, но можно это сделать и устаревшим способом:

Ядро Dojo само по себе довольно функциональное (не считая Dijit, Dojox):

  • Определение имени и версии браузера
  • Кодирование/декодирование JSON
  • Загрузка пакетов
  • Мощная поддержка AJAX
  • Механизм событий
  • Поддержка анимации
  • Поддержка асинхронного программирования
  • Движок высокопроизводительного языка запросов CSS3
  • Языковые параметры
  • Возможность работы с CSS
  • Поддержка ООП
  • Защита от утечки памяти
  • Интеграция в FireBug

Главный плюс движка — это механизм отладки, связанный с FireBug. Если Firebug выключен, Dojo создаст консольное окно в браузере и будет выводить отладочные сообщения, которые мы будем посылать, или которые будут генерироваться самим Dojo. Если же FireBug включен, Dojo не будет создавать консольное окно, а будет выводить все отладочные сообщения прям в FireBug. Удобно, неправда, ли?

Теперь выведем в консоль два сообщения:

Идём в том же духе…

Тут мы использовали dojo.addOnLoad(), чтобы добавить обработчик готовности документа. Так мы можем добавлять столько обработчиков, сколько захотим.

Теперь попробуем изменить текст внутри div:

Тут мы использовали byId, чтобы достать нужный элемент с определенным id. Затем изменили его контент. Менять контент при загрузке – это конечно хорошо, но мало кому нужно. Изменим его при нажатии на кнопку:

Сделаем так, чтобы кнопка плавно исчезла через 500 мс после ее нажатия. Также используем одну возможность поиска элемента — через CSS3-селектор. И воспроизведём анимацию:

С помощью dojo.query мы можем выбрать все элементы с определенным классом: dojo.query(“.my_class”)

Замечу, пока в скрипте не выполнятся вызовы, dojo.require, dojo.addOnLoad не будут задействованы. Это бережет нас от преждевременного выполнения кода, зависимости для которого еще не загрузились.

Теперь попробуем перемещать нашу кнопоку туда-сюда с помощью Dojo до нажатия кнопки «Stop»:

К концу

Пример нам предоставил сайт i-Novice. С помощью этой библиотеки теперь мы можем создавать подобные «приколы»! Документация на официальном сайте Dojo. Так и не поняли? Удачи!

Илон Маск рекомендует:  Загадочный тип pchar
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL