有没有办法在加载所有元素之前运行RequireJS Modules?

Dus*_* M. 5 javascript jquery requirejs

我从RequireJS模块运行jQuery初始化.

我注意到,在执行我的代码之前,RequireJS会等到所有页面资源都被加载.

我正在将一些大图像加载到我的页面中,但是不想等到它们被加载以设置我的jQuery插件.

尝试这样做时有最好的做法吗?

这是我的设置:

的index.html

<script data-main="js/main.js" src="js/libs/require.js"></script>
Run Code Online (Sandbox Code Playgroud)

main.js

require(["inits"], function(Inits) {
  //Nothing here yet.
});
Run Code Online (Sandbox Code Playgroud)

inits.js

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

我是RequireJS的新手,我做错了吗?

Dus*_* M. 2

好吧,我有一个似乎有效的解决方法。

在这里引用这张票:

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

我将带有 data-main 的脚本标记移至正文标记的末尾。

 <script data-main="js/main.js" src="js/libs/require.js"></script>
 </body>
Run Code Online (Sandbox Code Playgroud)

然后解开我的 jquery 函数:

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

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

它似乎有效,并且位于 html 文件的末尾“应该”防止 DOM 出现任何问题。然而,我对这种方法并不完全满意。我想保持这个开放,看看其他人是否有更好的想法。