5 Star 10 Fork 5

/ CL_Loader.js

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

js、css文件按需加载管理引擎

这是一款支持将日常js文件按需加载化的管理引擎,适时加载js、css,减少发往服务器的请求量,优化页面加载速度的同时,提高用户体验。

基本用法

/*
 * 会自动加载filename.js文件,并在加载完成后执行run里面的函数
 */  
Loader.js("filename.js").run(function(){
    alert("加载完成");
});

Api

https://git.oschina.net/luchg/CL_Loader.js/wikis/Api.1.2.0

License

CL_Loader.js遵循apache2.0协议发布

更新日志

1.2.3

  • 修复并行加载时候报undefined的问题

1.2.2

  • 修复包定义时,依赖多个包会引发异常的问题
  • 修复控制台不能输出异常信息的问题
  • 修复通过恶意操作输入错误的包名时异常信息没正常显示的问题

1.2.1

  • 包定义功能新增支持批量定义
  • 修复日期错写2014的问题

1.2.0

  • 新增Loader.version获取加载器版本号
  • 废除多余的别名
  • 修复控制台的一处可能会出现的bug
  • 精简队列引擎
  • 新增缓存机制,已加载过的js、css将被记录下载,下次依赖时将不重新加载(可以通过设置cache方法让其继续重新加载)
  • 新增cache方法设置是否不使用缓存(注意:缺省为使用缓存,而1.2.0以前的版本为不缓存)
  • 文件属性新增cache属性真的当前单个文件设置是否不启用缓存
  • 重构包的逻辑,使得包的使用更加人性化,重构后的包将遵守字面意义上的包概念
    • 概念:包就是一堆js、css文件的合集,它的存在就是为了减少繁琐的批量js、css添加
    • 包不再被强行缓存,继而取代的是cache方法,同时还支持针对包中的单个js文件设置cache实现部分缓存而部分不缓存
    • 由于包概念的变更,不再有loading、loaded、pending、finished事件属性,同时增加onafter、onbefore属性监听包的加载
  • 修复队列上的一处不明显bug:空队列无法上锁的问题

1.1.x - 1.2.0 升级提示:

  • 由于废除了多余的别名,因此部分方法名需要更换:(无需担心,一模一样的效果)
    • start -> run
    • script -> js
    • link -> css
    • package、pkg -> use
  • 包定义中rely属性已增加新别名require,建议更换使用require,以后版本会废弃rely而使用require取代
  • 包定义中原有的事件监听已不再支持
  • 因新增的缓存机制,如多次执行Loader.js("filename.js").run(); 时候,filename.js只会执行一次,如果您的代码中需要该脚本多次执行,则可通过设置cache禁止缓存以解决:
    • Loader.cache(false).js("filename.js").run();

1.1.5

2014-12-18

  • 【修复】修复在CL_Loader.js文件采用异步加载时ready方法不起作用的问题
  • 【新增】新增对RequireJS、SeaJS、GlightJS、NodeJS的支持

1.1.4

  • 【修复】修复一处加载逻辑BUG
  • 【优化】优化类型判断,使代码更严谨

1.1.3

  • 【优化】优化类型判断,使代码更严谨

1.1.2

  • 【新增】恢复CSS加载监控,采用新方法监听CSS文件的加载状态,终于解决在CSS没加载完成就执行触发run的问题啦~(CSS加载失败与否不会终止程序的执行)
  • 【新增】依赖包可以使用优雅的use方法取代难看的package和pkg啦~
  • 【优化】优化文件加载方式,从此CL_Loader文件也可以使用异步加载啦,同时加载的js文件会及时清除,不会再在DOM树上留痕啦~

1.1.1

  • 【新增】包定义新增包依赖参数rely,实现直接在定义包的时候定义依赖关系,使用时不再需要依赖需要某包所需要依赖的包,妈妈再也不用担心模块包依赖太多,使用起来太过混乱啦~
    • 例:jquery、tab两个包,tab需要jquery的支持,为此,在之前的版本中,我们一般需要喝么写: L.pkg("jquery","tab").run(...); 但是有没有觉得逻辑不是很好?自己写的还好,要是给其它同事伙伴去看的话,他们会知道tab包是要依赖的么?可能他只是以为你的下文需要使用jquery包而已呢。 1.1.1新增包与包的依赖功能后,你只需要这么写就可以了: L.pkg("tab").run(...);//jquery会因为tab的依赖而自动加载
  • 【优化】优化包依赖方法参数,终于支持用数组传参啦~~

1.1.0

  • 回炉重构,大幅度优化修改逻辑。部分用法改变
    • 【优化】files方法更换为add方法,同时用法也变化,详情参阅api文档
    • 【优化】add方法支持可变长参数,支持传递字符串、对象、数组
    • 【优化】文件的加载顺序不再区分css和js,统一以添加顺序加载,css会绕过加载等待直接进入加载下一项
    • 【优化】define定义模块包方法根据add方法也进行了加强,当判断模块包是否存在时,模块包存在则返回模块包的对象,不存在则返回false,详情参阅api文档
    • 【优化】ready方法根据run方法也发生变化,规则还是一样与run相投,只是它会等待到DOM加载完后才会执行加载
    • 【优化】重构run方法,新增别名start,并且不再受最多三参数的约制,可任意长参数,同样无顺序限制,以参数类型区分,
      • string、object、array类型当文件添加,number类型设置delay,boolean类型设置queue,
      • function类型设置回调函数。同时,文件添加可重复传入,会统一添加到加载队列,
      • 其它的重复传入的话,后者会覆盖前者
    • 【优化】针对单独文件设置编码后,将不受Loader的charset控制,Loader的charset定义为设置缺省文件编码
    • 【新增】css、js方法新增加可传递对象,可设置文件编码,同时css方法新增link别名,js方法新增script别名
    • 【新增】添加的文件也可单独对文件设置编码
    • 【新增】style方法,即时添加css样式(即时生效,非加载文件)
    • 【删除】废除css加载监控,因为无需判断文件加载是否正确,而且css的加载顺序并不影响程序的正常运转,采用img监控法会阻塞运行,也会增加浏览器负担
    • 【删除】废除error方法,同时模块包的error方法一并废除,此方法存在兼容问题,并且浏览器产生的错误也不准确,因而废弃
    • 【删除】废除id方法,此方法性能低下,除非开发者对自己代码没信心,不然此方法永远也不会用到,另外ready方法能让代码执行效率更高,故而废弃

1.0.2

  • 废除img监控css加载,因没必要且会严重堵塞流程,故而不再进行监控css是否加载完成
  • 重构加载流程,解决ie浏览器因缓存而导致出现文件还没正式加载完成就执行回调的问题
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright 2015 陆楚良 Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

js、css文件按需加载管理引擎 展开 收起
JavaScript
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
JavaScript
1
https://gitee.com/luchg/CL_Loader.js.git
git@gitee.com:luchg/CL_Loader.js.git
luchg
CL_Loader.js
CL_Loader.js
master

搜索帮助