2013-04-01 14 views
5

Uruchamiam jQuery z modułu RequireJS.Czy istnieje sposób uruchamiania modułów RequireJS przed załadowaniem wszystkich elementów?

Zauważyłem jednak, że RequireJS czeka, aż wszystkie zasoby strony zostaną załadowane przed wykonaniem mojego kodu.

Załaduję duże obrazy do mojej strony, ale nie chcę czekać, aż zostaną załadowane, aby skonfigurować moje wtyczki jQuery.

Czy istnieje najlepsza praktyka, gdy próbuje się to zrobić?

Oto moja konfiguracja:

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 
    }); 
} 

Jestem nowy w RequireJS, czy robię to źle?

Odpowiedz

2

W porządku, więc mam pracę, która wydaje się działać.

Odwoływanie ten bilet tutaj:

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

Poruszyłem tag skryptu z danymi-main do końca mojego tagu ciała.

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

A potem odwinął moje funkcje jquery:

Przed

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

Po

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

Wydaje się działać, a będąc na końcu plik html "powinien" zapobiegać problemom z DOM. Nie jestem jednak całkowicie zadowolony z tego podejścia. Chciałbym zachować to otwarte, aby zobaczyć, czy inni mają lepszy pomysł.

Powiązane problemy