Настройка профиля

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

Физически профиль – это простой файл, содержащий объект в формате JSON. В примере 16.1 показано содержимое профиля, объединяющего несколько диджитов форм, которые явно подключаются к странице с помощью вызова функции dojo.required. Все неявные зависимости отслеживаются автоматически. Как всегда при использовании функции dojo.require, вы просто определяете, что будет использоваться, а неявные зависимости будут удовлетворяться автоматически.
Пример 16.1. Простой профиль сборки
dependencies ={
layers: [
{
name: "form.js",
dependencies: [
"dijit.form.Button",
"dijit.form.Form",
"dijit.form.ValidationTextBox"
]
}
],
prefixes: [
[ "dijit", "../dijit" ]
]
};

Предположим, что этот профиль находится в файле util/buildscripts/profiles/form.profile.js и вы работаете в командной оболочке Bash; тогда следующая команда, выполненная в каталоге util/buildscripts, запустит процесс сборки. Обратите внимание, что параметр profile подразумевает имя файла в виде <имя профиля>.profile.js, и потому ему передается только часть <имя профиля>: bash build.sh profile=form action=release

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


Результатом сборки будет каталог с собранным выпуском, содержащий подкаталоги dojo, dijit и util. В каталоге dojo вы найдете то, что и ожидалось найти; особого внимания заслуживают четыре файла:
• Сжатая и несжатая версии библиотеки Base – файлы dojo.js и dojo.js.uncompressed.js
• Сжатая и несжатая версии слоя form – файлы form.js и form.js.uncompressed.js (загляните внутрь каждого из них, чтобы убедиться в этом).

Но как быть, если вам потребуются ресурсы, не включенные в состав файла слоя? Нет проблем – если ресурсы не указаны в профиле, они будут запрошены у сервера соответствующими инструкциями dojo.require. Предположим, что вы взяли весь каталог с выпуском и поместили его в какойлибо каталог на своем сервере; тогда инструкции dojo.require, загружающие ресурсы, не включенные в состав слоя, будут работать как обычно, но при этом будет затрачиваться некоторое время на получение требуемых ресурсов с сервера.

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

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


Обычно в подобных ситуациях приходится выбирать между «достаточно небольшим» объемом данных, загружаемых первоначально, и стоимостью синхронной загрузки с помощью dojo.require, производимой позднее.

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

Статьи из раздела Dojo на эту тему:
Вопросы производительности
Запуск сборки
Настройка профиля (более грамотный вариант)
Платформа тестирования Dojo (DOH)
Преимущества использования сборок XDomain