5

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

但是,我注意到 RequireJS 会等到所有页面资产都加载完毕后再执行我的代码。

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

尝试执行此操作时是否有最佳实践?

这是我的设置:

索引.html

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

main.js

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

初始化.js

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

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

4

1 回答 1

2

好的,所以我有一个似乎正在工作的解决方法。

在这里引用这张票:

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

我将带有 data-main 的脚本标签移到了正文标签的末尾。

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

于 2013-04-01T23:03:28.430 回答