yepnope.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 : /* boolean(ish) - 你要检查真伪的表达式 */, yep : /* array (of strings) | string - test为true时加载这项 */, nope : /* array (of strings) | string - test为false时加载这项 */, both : /* array (of strings) | string - 什么情况下都加载 */, load : /* array (of strings) | string - 什么情况下都加载 */, callback : /* function ( testResult, key ) | object { key : fn } 当某个url加载成功时执行相应的方法 */, complete : /* function 都加载完成了执行这个方法 */ }, ... ]); 这里的参数都可以是array或者object,在加载多个资源文件的时候有用 。 yepnope加载jquery的实例 复制代码 代码如下: yepnope([{ load: http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js, complete: function () { if (!window.jQuery) { yepnope(local/jquery.min.js); } } }, { load: jquery.plugin.js, complete: function () { jQuery(function () { jQuery(div).plugin(); }); } }]); 这段代码异步加载了jquery和jquery.plugin.js,甚至还对jquery加载失败的情况做了一个备用处理 。 |