requireJS心得
最近有幸接触到前端分模块加载JS框架,并且结合avalonJS使用,在此记录学习痕迹:
a、实现js文件的异步加载,避免网页失去响应;
b、管理模块之间的依赖性,便于代码的编写和维护。
(1)requireJS:定义三个变量:define,require,requirejs,其中require === requirejs,一般使用require更简短
- define:定义一个模块
- require:加载依赖模块,并执行加载完后的回调函数 (及可以在页面中使用,也可以在其他js需要的地方使用,比如在avalonJS中)
(2)require.config:用于配置依赖模块位置信息(paths),基础目录(baseUrl),非AMD规范模块(shim)
(3)采用main.js结合require.config配置依赖模块信息,作为公用部分,一般是定义jqueryJS,avalonJS,AngularJS,NodeJS等,定义之后在页面中便可以加载,同时通过data-main="XXX/main"定位
(4)加载requireJS时可以使用 defer async="true" 异步加载(defer兼容IE,和async='true'相同)
(5)require加载依赖模块,第一个参数必须是数组,哪怕只有一个依赖模块;第二个参数为加载完成回调函数
(6)requireJS具有domready,text,image,json,mdown等插件
requireJS心得的更多相关文章
- requirejs和r.js的心得
requirejs的GitHub:requirejs r.js的GitHub:r.js grunt-contrib-requirejs的GitHub:grunt-contrib-requirejs r ...
- requireJS的配置心得
1.html页面中如果同时存在data-main和require()和配置(config中的baseUrl),那么定义根路径 baseUrl > data-main > index.htm ...
- 前端架构:Angular与requirejs集成实践
这几天angular与requirejs.browserify的集成弄的博主头好晕,今天终于成功集成了requirejs,现写些心得体会在这里. 核心思想:angular加载时有一定的顺序,必须依次加 ...
- 从 RequireJs 源码剖析脚本加载原理
引言 俗话说的好,不喜欢研究原理的程序员不是好的程序员,不喜欢读源码的程序员不是好的 jser.这两天看到了有关前端模块化的问题,才发现 JavaScript 社区为了前端工程化真是煞费苦心.今天研究 ...
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- bootstrap + requireJS+ director+ knockout + web API = 一个时髦的单页程序
也许单页程序(Single Page Application)并不是什么时髦的玩意,像Gmail在很早之前就已经在使用这种模式.通常的说法是它通过避免页面刷新大大提高了网站的响应性,像操作桌面应用程序 ...
- NoSql数据库使用半年后在设计上面的一些心得
NoSql数据库这个概念听闻许久了,也陆续看到很多公司和产品都在使用,优缺点似乎都被分析的清清楚楚.但我心里一直存有一个疑惑,它的出现究竟是为了解决什么问题? 这个疑惑非常大,为此我看了很多分析文章, ...
- 实现一个类 RequireJS 的模块加载器 (二)
2017 新年好 ! 新年第一天对我来说真是悲伤 ,早上兴冲冲地爬起来背着书包跑去实验室,结果今天大家都休息 .回宿舍的时候发现书包湿了,原来盒子装的牛奶盖子松了,泼了一书包,电脑风扇口和USB口都进 ...
- 使用RequireJS并实现一个自己的模块加载器 (一)
RequireJS & SeaJS 在 模块化开发 开发以前,都是直接在页面上引入 script 标签来引用脚本的,当项目变得比较复杂,就会带来很多问题. JS项目中的依赖只有通过引入JS的顺 ...
随机推荐
- ios统计代码行数
要统计ios开发代码,包括头文件的,终端命令进入项目目录下,命令如下 列出每个文件的行数: find . -name "*.m" -or -name "*.h" ...
- android 定时执行一个任务
1. timer = new Timer(true) TimerTask task = new TimerTask(){ public void run(){ test(); } } timer.s ...
- [ActionScript3.0] 运用JPEGEncoderOptions或者PNGEncoderOptions保存图片到本地
在flash player 11.3和air3.3之前,我们可以借助第三方类(JPEGEncoder)这些,很容易处理.现在,有了encode和JPEGEncoderOptions这些,处理位图数据就 ...
- Maven pom.xml 配置详解
http://niuzhenxin.iteye.com/blog/2042102 http://blog.csdn.net/u012562943/article/details/51690744 po ...
- clone代码
例子1:
- python 装饰器和 functools 模块
转自:http://blog.jkey.lu/2013/03/15/python-decorator-and-functools-module/ 什么是装饰器? 在 python 语言里第一次看到装饰 ...
- 9. Palindrome Number
/* Determine whether an integer is a palindrome. Do this without extra space. click to show spoilers ...
- java类包第十一章
1.同一个包中的类互相访问,不需要制定包名. 2.java中包名的规则是全部使用小写字母 3.final 方法不能被覆盖, public class OuterClass { innerClas ...
- 在 angularjs 中集成 bootstrap typeahead
问题 在使用 typeahead 的时候,有这样一个需求,当用户选中其中一项的之后,将项目对应的 id 保存到另外一个变量中,以后在提交表单的时候,将这个 id 发送到服务器中. 但是,在 typea ...
- g++/gcc 链接头文件 库 PATH
转自http://blog.csdn.net/kankan231/article/details/24243871 在Linux下编译链接或运行c/c++程序时可能会遇到找不到头文件,找不到库文件的错 ...