2013-04-01 2 views
5

Я запускаю инициализацию jQuery из модуля RequireJS.Есть ли способ запуска модулей RequireJS перед загрузкой всех элементов?

Я заметил, однако, что RequireJS ждет, пока все объекты страницы не будут загружены до выполнения моего кода.

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

Есть ли наилучшая практика при попытке сделать это?

Вот мои настройки:

index.html

<script data-main="js/main.js" src="js/libs/require.js"></script> 

main.js

require(["inits"], function(Inits) { 
    //Nothing here yet. 
}); 

inits.js

define([ 
     'jquery', 
     'jquery.plugin1', 
     'jquery.plugin2', 
     'etc' 
], function ($) { 
    //jQuery Document Ready. 
    $(function(){ 
     //Jquery Init Code here 
    }); 
} 

Я новичок в RequireJS, я делаю это неправильно?

ответ

2

Хорошо, поэтому у меня есть работа, которая, кажется, работает.

Реферирование этого билета здесь:

https://github.com/jrburke/requirejs/issues/463

Я переехал мой сценарий тег данных магистрали к концу моего тела тега.

<script data-main="js/main.js" src="js/libs/require.js"></script> 
</body> 

А потом развернул мое JQuery функции:

Перед

define([ 
    'jquery', 
    'jquery.plugin1', 
    'jquery.plugin2', 
    'etc' 
], function ($) { 
    //jQuery Document Ready. 
    $(function(){ 
     //Jquery Init Code here 
    }); 
} 

После

define([ 
    'jquery', 
    'jquery.plugin1', 
    'jquery.plugin2', 
    'etc' 
], function ($) { 
    //Jquery Init Code here with no Ready Wrapper. 
} 

Это, кажется, работает, и, будучи в конце html-файл «должен» предотвращать возникновение каких-либо проблем с DOM. Однако я не совсем согласен с этим подходом. Я бы хотел, чтобы это было открыто, чтобы понять, есть ли у других лучшая идея.

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