Для чего нужна функция в dojo?

// Load the dom module
require(["dojo/dom"], function(dom){
});

Я понимаю, что функция вызывается, когда загружается модуль dom, но я не понимаю, каков будет код внутри функции. Является ли это контейнером для всего кода javascript на моей странице?

Ответы

Ответ 1

Функция - обратный вызов, который загрузчик AMD вызовет, когда он загрузит все необходимые вам модули.

Если у меня

require(["dojo/_base/ready", "dojo/_base/declare"], function(ready, declare) {

  // do something with declare and ready

});

AMD собирается загрузить и объявить. Это может потребовать, чтобы AMD выполнила асинхронный вызов на сервер. Как только AMD загрузит модули, он вызывает функцию, которую вы передали в метод require.

Мой ответ на Dojo Builds...? Что теперь? содержит более подробную информацию о API AMD.


Отвечайте на вопрос в комментарии. Следующие два оператора могут быть в любом месте на странице.

<script type="text/javascript">
require(["dojo/_base/ready", "dojo/_base/declare"], function(ready, declare) {
   // do something with declare and ready
});
</script>

<script type="text/javascript">
require(["dojo/_base/ready", "dojo/_base/declare", "dijit/form/Button"], 
   function(ready, declare, Button) {
     // Assuming this is the second statement to be executed, AMD will 
     // realize that ready and declare have previously been loaded,
     // so it will use the previously loaded modules, load the Button module, 
     // and then execute the callback

     // do something with declare, ready, and Button
});
</script>