异步加载工具 使用背景 主流加载框架固然有很多优点,但缺点亦有: 1.侵入性强,项目改造工作量大 2.前后台开发不便,只有一个入口,后台代码怎么写 3.语法理解有一些要求 本加载器针对以上缺点设定, 1.对原代码无侵入,使用对象检索 2.可以有多个入口,重复调用compose.require即可,后台开发也可同步调用到前端代码,却不会有未定义现象 3.对语法需求降低很多,只要使用compose.require, 属性配置或compose.config 即可 4.支持amd、cmd式写法 5.对cmd的模块回调中再请求模块进行的是真正的异步调用,这样才是真正实现需要的资源后续加载,而需要同步的资源需在头部配置 6.通过多个入口js,可利用浏览器并发下载,且相同的入口模块可公用,达到最大程度的性能提升 入口说明 1.属性配置有3项 data-basepath="scripts" data-contextpath="" data-dependonload="true" data-param="v=1" 2.js配置优先级会覆盖属性配置 compose.config({ basePath: 'scripts',//设置javascript公共路径 contextPath: '',//设置项目路径,默认为当前目录 dependOnload: 'true',//是否通过onload触发,配置为true即可 data-param: 'v=1', //版本号 paths: { //配置对象和路径的键值对 jQuery: 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min' } }) 3.只有一个接口, 重复再重复 compose.require(['a'], function(a){ alert(a); },['a']); compose.require(function(){ alert('入口'); }) 4.一个原则是,对js资源引用,第一次引用资源需有对象检索数组,如上例的['a'],后面不再需要 css资源不需检索 5.接近20个demo, 涵盖所有功能 6.目前需依赖grunt配合使用 版本修改 v1.0.1 1.修改多级对象索引失败的bug 2.在多核浏览器中,异步调用会出现失败,触发器使用window对象load事件触发