javascript - 有没有办法在加载所有元素之前运行 RequireJS 模块?

标签 javascript jquery requirejs

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

但是我注意到 RequireJS 在执行我的代码之前会等到所有页面资源都加载完毕。

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

尝试这样做时是否有最佳实践?

这是我的设置:

index.html

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

ma​​in.js

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

init.js

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

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

最佳答案

好吧,我有一个似乎有效的变通方法。

在此处引用此票证:

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

我将带有 data-main 的 script 标签移到了 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 出现任何问题。然而,我对这种方法并不完全满意。我想保持开放状态,看看其他人是否有更好的主意。

关于javascript - 有没有办法在加载所有元素之前运行 RequireJS 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15753124/

相关文章:

javascript - 无法读取 null JS 的属性 'appendChild'

javascript - 使用 jQuery mobile,想要完全禁用导航

javascript - 为什么在使用 Miso 时 _ 未定义?

javascript - 如何将javascript变量传递给服务器端asp.net

jquery - 验证错误消息弄乱了所有 `float` 布局

RequireJS优化成多个模块

ember.js 和 require.js

javascript - 根据语言偏好更改网站版本

javascript - 旋转 HTML5 视频并保存 Canvas

javascript - 在页面完全加载后,在 wordpress 中启动动画