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的新手,我做错了吗?
好吧,我有一个似乎有效的解决方法。
在这里引用这张票:
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 出现任何问题。然而,我对这种方法并不完全满意。我想保持这个开放,看看其他人是否有更好的想法。