yepnope.js是一个超高速的按条件异步加载资源的加载器,允许你只加载使用到的资源(css及js)。
典型代码示例
yepnope({
test : Modernizr.geolocation,
yep : 'normal.js',
nope : ['polyfill.js', 'wrapper.js']
});
当Modernizr.geolocation为真时,加载yep项也就是”normal.js”,否则加载nope项——可以同时加载多个文件。
yepnope和现有的xxx script loader有什么区别?
可以同时处理javascript以及css
能够按条件加载
yepnope的全部参数
yepnope([{ test : , yep : , nope : , both : , load : , callback : , complete : }, ... ]);
这里的参数都可以是array或者object,在加载多个资源文件的时候有用。
为什么使用yepnope:
1.Gzip后只有1.6K比大多数的资源加载器都小
2.可以加载CSS及JS
3.yepnope通过了作者能找到的所有的浏览器的测试
4.yepnope完全分离资源加载和执行,这样你可以控制资源的执行顺序
5.提供友好的API和促进资源的逻辑组合
6.模块化设计,你可以自己扩充功能
7.鼓励按需加载资源
8.集成在Modernizr中
9.默认总是按照资源列表(你所提供的文件列表顺序)顺序执行
可处理资源回退(fallback),且仍优先并行下载依赖的脚本
yepnope的不足
1.并不总是最快的,像labjs等优化后可能加载速度优于yepnope,但需要根据你的实际情况考虑使用哪个加载器
2.需要给资源设置一定的缓存头(这一点很重要)
3.并不像RequireJS等类库有自己的生成工具及丰富的API,yepnope仅实现了基本加载器功能
4.默认总是按照你提供的资源列表顺序执行,这一点有可能会影响速度