dojo.addOnLoad

Поскольку при загрузке ресурсов версии XDomain инструкция dojo.re-quire работает асинхронно, не всегда бывает возможным сразу же использовать ресурс, который был указан в инструкции dojo.require при загрузке страницы1, потому что задержка, вызванная передачей данных по сети, и другие факторы могут (а чаще всего так и случается) обусловить некоторую задержку в получении доступа к ресурсу. Если в такой ситуации попытаться обратиться к ресурсу, который еще не успел загрузиться, вы получите сообщение об ошибке и весь процесс самонастройки вероятнее всего прервется. На техническом языке такая ситуация, когда результат не определен изза непредсказуемости временных ограничений, называется гонкой за ресурсами.

По только что упомянутым причинам желательно взять в привычку использовать функцию dojo.addOnLoad, потому что она обеспечивает максимальную переносимость страницам независимо от того, загружается ли версия XDomain или нет.

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

Хотя процесс самонастройки – синоним «загрузки сценария» на высоком уровне, тем не менее в процессе загрузки происходит еще несколько событий, заслуживающих внимания.


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

Настройка платформы
Учитываются любые нестандартные параметры настройки, которые могут быть определены посредством djConfig – ассоциативного массива, который должен быть описан перед тегом SCRIPT, выполняющим загрузку Dojo, или в виде атрибута тега SCRIPT, выполняющего загрузку Dojo. Подробнее о массиве djConfig мы поговорим ни же в этой главе.

Определяется, какая версия Dojo должна быть загружена – локальная или кроссдоменная. Загрузка версии XDomain производится прозрачно – при условии, что есть соединение с Интернетом и во время сборки был настроен загрузчик версии XDomain. По умолчанию настройку загрузки версии XDomain производит dojo.xd.js (и другие компоненты *.xd.js), который представляет собой замену стандартному ресурсу dojo.js.

На основе информации об окружении, для которого была создана конкретная сборка Dojo (обычно это броузер, но могут быть и другие варианты, такие как Rhino или мобильное устройство), производится настройка всех особенностей, зависящих от окружения. Хотя вам не придется выполнять какиелибо настройки на конкретный броузер при использовании версии Dojo по умолчанию, собранной для работы в этом броузере, тем не менее библиотека Base содержит такие элементы данных, как dojo.isIE и dojo.isFF, чтобы с их помощью можно было определить тип броузера в тех случаях, когда это действительно необходимо.

Выполняются действия, зависящие от типа броузера, такие как создание экземпляра объекта XMLHttpRequest (XHR), позволяющего выполнять асинхронные запросы при использовании различных асинхронных утилит AJAX в инструментальном наборе Dojo.


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

Загружается пространство имен dojo, содержащее функции и имена, составляющие содержимое библиотеки Base.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Dojo на эту тему:
dojo.byId
dojo.connect
Исследование Dijit
Исследование Dojo с помощью Firebug
Исследование библиотеки Base