2013-04-01 2 views
5

Ich habe jQuery-Initialisierungen von einem RequireJS-Modul ausgeführt.Gibt es eine Möglichkeit RequireJS Module zu starten, bevor alle Elemente geladen sind?

Ich habe jedoch festgestellt, dass RequireJS wartet, bis alle Seiten Assets geladen sind, bevor Sie meinen Code ausführen.

Ich lade einige große Bilder auf meine Seite, möchte aber nicht warten, bis sie geladen sind, um meine jQuery-Plugins einzurichten.

Gibt es eine Best Practice beim Versuch, dies zu tun?

Hier ist mein Setup:

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

Ich bin neu in RequireJS, mache ich das falsch?

Antwort

2

In Ordnung, also habe ich eine Arbeit, die scheint zu arbeiten.

Referenzierung dieses Ticket hier:

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

ich mein Script-Tag mit Daten-Haupt bis zum Ende meines Körpers Tag bewegt.

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

Und dann ausgepackt meine Jquery Funktionen:

Vor

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

Nach

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

Es scheint zu funktionieren, und am Ende ist der die HTML-Datei "sollte" verhindern, dass es Probleme mit dem DOM gibt. Ich bin jedoch nicht ganz zufrieden mit diesem Ansatz. Ich möchte das offen halten, um zu sehen, ob andere eine bessere Idee haben.

Verwandte Themen