seajs源码学习(一)
2015-12-04 16:55 盛世游侠 阅读(179) 评论(0) 收藏 举报今天是2015年12月4日,天气较为阴冷。(习惯性记下日期和天气,总要留些回忆给以后)
学习的最佳捷径是模仿,所以如果想快速提高javascript技术,捷径就是去读大神们的优秀源码。就像我们学说话一样,听多了,模仿多了,也就会听会说了。
听说“懂得一个道理而不去奉行它,那就是还没有懂得这个道理”。本着这个宗旨,我今天开始学习seajs源码,希望学习完以后能达到以下目的:
1、Get一个新技能,能熟练掌握seajs的使用,并将它用到一个项目中(好吧,我承认是因为seajs比较时髦,而我out了);
2、能从中向玉伯大神学几招,以便提升一下自己做的东西的专业水准(本着“不想当**的**不是好**”的心态);
解读源码的办法
不再啰嗦,先来看看我怎么去解读源码。
解读seajs源码,就像拆一个收音机,首先得搞清楚它是干啥的,怎么干的,原理是啥,都由哪些部件和模块组成,用了些什么零件,零件分别承担什么工作。
那么首先,得了解seajs是干啥的。我对seajs所知有限,在各处博客论坛上走马观花转悠了一圈,只知道它能干这些事:
1、依赖管理;
想像下这样的场景,一个html页面内引入了a.js和b.js两个文件,当b.js的某个功能的实现,依赖于a.js中的某个方法时,此时如果a.js加载顺序在b.js后面,
那么b.js调用a.js中的某个方法干活时,肯定会报如下错误:
因为这时,b.js就是依赖a.js干活的,它们之间存在一种依赖关系。
如果一个页面中有很多个js文件,相互之间的依赖关系很复制,那么管理这些js文件的加载顺序来就是一个噩梦,而seajs的依赖管理功能可以让你从这种噩梦中解脱。
2、代码模块化;
模块化,听起来多么高大上的词。说白了就是把一盘炒好的菜分成佐料、主菜、配菜、调味料、水、油等各个部分。
一个js框架可能有着很多功能,seajs做的就是把它们的各部分功能分开成一个个模块,每个模块放一个js文件中。这样做的好处在于:
a、方便维护,容易定位到bug;
b、方便扩展,要扩展某个新功能加js文件即可,不要再到处翻;
seajs分模块的办法是所有javascript代码都要遵循CMD规范,seajs提供了几个好用又简单的API来管理模块;