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

时间:2013-04-01 22:36:22

标签: javascript jquery requirejs

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

但我注意到,在执行我的代码之前,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的新手,我做错了吗?

1 个答案:

答案 0 :(得分:2)

好吧,所以我有一个似乎有效的工作。

在此处引用此票证:

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

我将带有data-main的脚本标记移动到了body标签的末尾。

 <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出现任何问题。然而,我对这种方法并不完全满意。我想保持开放,看看其他人是否有更好的主意。