我使用 yepnope.js 作为加载的资源。我只想在加载该模块的所有依赖项后才执行 JS 模块中的代码。我不想加载已经加载的 JS 依赖项。
假设我有依赖项 D1.js 和 D2.js。我试过
yepnope({
load: ['D1.js', 'D2.js],
complete: function() {
//execute my code here
}
});
这是可行的,但是,每次都会加载资源,即使它们之前已经加载过。
如果我进行多次这样的测试:
yepnope([{
test: $().d1,
nope: 'D1.js'
},
{
test: $().d2,
nope: 'D2.js'
}]);
不太清楚总体放在哪里完全的函数——后面运行的函数all资源已加载。
是否可以使用 yepnope 来完成此操作,或者我是否需要使用不同的组件?
Thanks.
假设您需要有条件地加载 jquery.js、jquery.jgrowl.js 和 jquery.powertip.js。
您希望以下代码能够工作:
yepnope([{
test: typeof(window.jQuery) === 'undefined' ||
jQuery.fn.jquery.match(/^1\.[0-9]+/) < 1.7,
yep: '//cdnjs.cloudflare.com/ajax/libs/jquery/2.0.0/jquery.min.js'
},
{
test: typeof(window.jQuery) === 'undefined'
|| typeof(window.jQuery.fn.jGrowl) === 'undefined',
yep: ['//cdnjs.cloudflare.com/ajax/libs/jquery-jgrowl/1.2.12/jquery.jgrowl.min.js',
'//cdnjs.cloudflare.com/ajax/libs/jquery-jgrowl/1.2.12/jquery.jgrowl.css'],
complete: function() {
console.log('completed loading jGrowl (should fire first, or not at all)');
}
},
{
test: typeof(window.jQuery) === 'undefined'
|| typeof(window.jQuery.fn.powerTip) === 'undefined',
yep: ['//cdnjs.cloudflare.com/ajax/libs/jquery-powertip/1.1.0/jquery.powertip.js',
'//cdnjs.cloudflare.com/ajax/libs/jquery-powertip/1.1.0/jquery.powertip.min.css'],
complete: function() {
console.log('completed loading powertip');
jQuery.jGrowl("Growling!");
}
}
]);
但是,如果这在已加载 jquery.powertip.js 但未加载 jquery.jgrow.js 的页面上运行,则会抛出错误,因为“完整”回调会立即触发,而不是在所有文件加载完成。
以下小提琴演示了 yepnope 1.5.4 中的此错误:http://jsfiddle.net/dergachev/HHxK2/ http://jsfiddle.net/dergachev/HHxK2/
另请注意,在 yepnope 当前的主干(主分支)中,此错误消失了。
它可能与以下票证有关(从未向后移植到 1.5.4):
- https://github.com/SlexAxton/yepnope.js/pull/140 https://github.com/SlexAxton/yepnope.js/pull/140
- https://github.com/SlexAxton/yepnope.js/issues/132 https://github.com/SlexAxton/yepnope.js/issues/132
- https://github.com/SlexAxton/yepnope.js/issues/100 https://github.com/SlexAxton/yepnope.js/issues/100
- https://github.com/SlexAxton/yepnope.js/issues/96 https://github.com/SlexAxton/yepnope.js/issues/96
- https://github.com/SlexAxton/yepnope.js/issues/29 https://github.com/SlexAxton/yepnope.js/issues/29
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)