Ссылка на файл Javascript DOJO

#dojo

#dojo

Вопрос:

Я новичок в DOJO. У меня есть один вопрос относительно фреймворка dojo.

Есть ли какая-либо разница в обращении к файлу DOJO js в обоих случаях

Первый случай:

 <script src="dojo.js"
        djConfig="parseOnLoad: true">
        </script>
  

Второй случай:

  <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojo/dojo.xd.js"
        djConfig="parseOnLoad: true">
        </script>
  

Большое вам спасибо.

Ответ №1:

В первом случае вызывается файл dojo.js JavaScript (основная библиотека Dojo) из пути, относящегося к корню документа веб-сервера. Другими словами, это локальная установка (локальная для сервера) библиотек Dojo.

Второй вызывает основной файл библиотеки Dojo из внешнего источника, в данном случае библиотеки API Google. Он включает в .xd себя как часть своего имени файла, чтобы указать, что эта конкретная сборка Dojo toolkit поддерживает междоменную загрузку

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

Преимущество использования сторонних API, таких как Google, заключается в том, что они широко используются, и поэтому многие пользователи могут уже иметь основные файлы в своих кэшах браузера, что устраняет необходимость их загрузки вообще при доступе к вашему веб-приложению. Общий размер загружаемого файла, вероятно, будет больше, чем пользовательская сборка, которую вы собрали самостоятельно. Такой сервис, как Google APIs, предоставляет для использования несколько разных версий Dojo toolkit (в приведенной выше используется версия 1.6), на случай, если у вас есть конкретные потребности в версии для вашего приложения. В отличие от этого, вам нужно будет самостоятельно поддерживать локальные установки нескольких версий, если у вас разные потребности в ваших приложениях.

Комментарии:

1. Не забудьте упомянуть, что в междоменных сборках модули загружаются асинхронно, поэтому вам нужно обернуть любой код, использующий библиотеку, в dojo.ready. (Это будет меньше проблем в новой модульной системе 1.7 )

2. @missingno: я бы не назвал это меньшей проблемой в 1.7 (не то чтобы я называл это «проблемой» для начала ;)). Однако, если вы намекаете на поддержку формата AMD, добавленную в 1.7, то вы можете сказать, что асинхронный код станет немного более естественным. Не меняет того факта, что xd-использование dojo является асинхронным (и, если я не ошибаюсь, в случаях с одним доменом загрузчик по-прежнему по умолчанию использует синхронную работу для обеспечения обратной совместимости).