我正在从 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.
});
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/