2009-06-12 4 views
8

Я начинаю использовать Dojo; это (по существу) мое введение в AJAX. У нас есть Java-сервер (крутящий момент/турбина/скорость) и используют библиотеку JSON-RPC jabsorb для подключения Java и Javascript.Essential Dojo

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

+2

Если вы только начинаете AJAX и не имеете требования к DOJO, вы можете переключиться на jQuery. Он имеет очень простой API и очень небольшую кривую обучения. – jconlin

+0

Спасибо, jconlin, но у меня нет возможности. –

+2

Я обнаружил, что множество групп, которые используют Java на бэкэнд, например Dojo, на интерфейсе. Не знаю, почему. Dojo имеет более крутую кривую, но в нее добавлено много синтаксиса типа jQuery. Мне нравится материал pubsub. – Nosredna

ответ

9

Первое, что нужно сделать, это получить знакомы с объектной моделью Dojo. JavaScript не имеет системы классов, поэтому набор инструментов Dojo создал своего рода «условную» объектную модель, которая работает довольно хорошо, но очень отличается от того, как она работает в Java, например.

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

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

Как общий совет по программированию DHTML, используйте firebug (плагин для Firefox). Он позволяет отлаживать JavaScript, проверку DOM, редактирование HTML в режиме реального времени и многое другое. Теперь я полностью полагаюсь на это, когда я работаю в DHTML!

Удачи вам!

+0

Дональд: есть ли «предметная модель Dojo», характерная для Dojo, или это DOM - Document Object Model - или я чего-то не хватает? Спасибо. – philant

+0

Это специфично для Доджо и, по их собственным словам, «функции для имитации» системы классов. Вы можете прочитать об этом здесь http://dojotoolkit.org/book/dojo-book-0-9/part-3-programmatic-dijit-and-dojo/object-orientation –

+2

Нет такой вещи, как капитализированный " Dojo Object Model ". Додзё использует псевдоклассический объектно-ориентированный подход, то есть вы можете писать классы. Не обманывайте это. –

5

Я тоже просто добрался до Додзе, у них хорошая документация по API на http://api.dojotoolkit.org/. Даже у Dojo Campus есть несколько хороших примеров подключаемых модулей.

Если вы спросите меня О'Рейли Додзе: Полное руководство - лучшая книга Dojo на рынке.

Мне также нужны любые советы и указатели от мастеров Dojo.

Приветствия

5

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

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

Sitepen - хороший ресурс для Dojo articles.

Также читайте на DeferredDeferredList), а также hitch() - две чрезвычайно гибкие и мощные функции Dojo. SitePen имеет отличную статью о демистификации Deferred s.

Отъезд plugd, коллекция расширений Dojo, которые делают некоторые вещи более удобными или добавляют некоторые умные функции на язык. Это сделано одним из основных авторов Dojo, поэтому он довольно надежный. Он даже привносит в рамки некоторые jQuery-тонкости.

Некоторые вещи: посмотрите в хранилища данных, они очень полезны и намного более чистые способы обработки Ajax.У DojoX тоже много хороших, просто помните, что диапазон DojoX зависит от того, насколько хорошо документированы или насколько экспериментальны компоненты. Изучите различия между dojo.byId и dijit.byId, а также атрибуты HTML id по сравнению с jsId (опять же, в Sitepen есть статья).

+0

Thanks; это все очень полезно. –

+0

Одна заметка. Отсрочка хороша для создания асинхронных процессов, таких как вызовы Ajax, которые ведут себя синхронно, например, если вам нужно ждать, пока некоторые вызовы ajax вернутся, прежде чем переходить к следующему шагу. – aehlke

4

Несколько вещей, которые привлекли меня, когда я начал писать виджеты, где:

[Понимание того, что делать dojoAttachPoint, dojoAttachEvent, containerNode и widgitsInTemplate] [1]

имеют твердое понимание закрытия,

Получите свою голову вокруг deferreds

понять ItemFileReadStore, ItemFileWriteStore и магазины в общем

Вы можете посмотреть такие магазины, как ResultSet (сорт), а также привязать их к виджетам.

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

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

Также, если вы занимаетесь разработкой Java-услуг, вы хотите посмотреть в JAX-RS. Я начал использовать JSON-RPC, который стал JABS-ORB, но после работы с JAX-RS я предпочитаю его, так как он хорошо интегрируется с JPA-EJB и JAXB.

0

Сначала прочитайте, как настроить Dojo в приложении. Попытайтесь понять базовую структуру Dojo, как если бы мы писали dijit.form.Button или dijit/form/Button, это означает, что Button.js находится в папке dijit/form. Попытайтесь понять, требуют, определяют, объявляют модули Dojo. Этого достаточно, чтобы запустить Dojo Toolkit.

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

Смежные вопросы