扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
依读了2周jQuery源码的人感觉来说,完全理解jQuery,就拿jQuery 1.11这个版本10337行代码来说,水平已经很不错了。谦虚点说,已经入门。骄傲点,国内领先水平。但其码我感觉是js架构之路起行的第一步,完全理解源码,说明有独立构建或组织大型web前端框架的能力和基础。然后看看完全理解jQuery是一个怎么样的状态。
成都创新互联-专业网站定制、快速模板网站建设、高性价比绥芬河网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式绥芬河网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖绥芬河地区。费用合理售后完善,十多年实体公司更值得信赖。
看下面几个链接就明白了:
RubyLouvre/avalon · GitHub
artDialog
aui/artDialog · GitHub(后来的新版代码有所改变)
没错,这两个里边,就是在继承jquery的基础上做了自己的创新尝试。
然后在看下面这位:
[原创] jQuery1.6.1源码分析系列(停止更新)
是唯一出过jquery源码分析书的一位:
《jQuery技术内幕:深入解析jQuery架构设计与实现原理》(高云)【摘要 书评 试读】
然后在看这位:
jQuery 2.0.3 源码分析系列
是目前一直在更新的一位,通俗有深度且版本比较新。
在说一下我2周阅读jquery源码的心得,初看源码写的恶心,再看写的不错,细看写的真是精妙。然后今天在看ext 4.2的源码,真是流畅易读。基本来说,看懂jQuery源码,以后的源码学习之路可以说,平坦。
然后说是不是高手,高手只是一个自我定位的心理暗示,是一种人格魅力的体现,是业务与技术的完美结合。个人感觉只能无限的接近,不能在有限的生命里边到达。我们在通往目的地过程中享受一路的风景,这才是生命的意义。
然后在说前端,前端的核心是js,外围打酱油的技术太多,不一一列举。
css就像一瓶酒,得品。
html,css总共就那些标签跟选择器属性什么的,但是要写一个有扩展性,健壮性或维护性的页面不容易。现在写页面基本条件反射,不是如何快速的完成,而是思考如果有前端界面需求修改,怎么在修改代码最少的情况下完成整体需求任务。
js就像一把剑,得磨。
js刚开始只是为了较验,随便技术社会的发展,承担的角色越来越重,刚开始玩玩jQuery感觉已经会js了,其实只是冰山一角。随着对js的了解越来越多,他即变态又可爱,即好玩又难控,即有很多兼容问题,但解决兼容是我们基本生存之道。
人生就是一场梦,得作。
技术只是生活的一部分,曾经雄心斗志,如今低头写码。改变能改变的,接受不能改变的。人生有限,兄争朝夕啊。
最后说,什么时候能阅读jQuery源码,我感觉其码是纯js编码一年以上,js基础知识没有盲点。阅读源码,确实能学到很多东西。不只是技术,而是一种生活的态度。一种把一件事情做到极致的态度
!-- 三级操蛋导航 --
div class="nav_left"
div class="nav_leftlist"
h2b/b用户系统/h2
dl
dtb/b用户管理/dt
dd
a class="cur" href=""商户信息b/b/a
a href=""用户信息b/b/a
/dd
/dl
/div
div class="nav_leftlist"
h2b/b财务系统/h2
dl
dtb/b系统账务/dt
dd
a href=""平台账单b/b/a
a href=""账单明细b/b/a
/dd
/dl
dl
dtb/b商户账务/dt
dd
a href=""商户账单b/b/a
a href=""提现管理b/b/a
/dd
/dl
dl
dtb/b用户账务/dt
dd
a href=""用户账单b/b/a
a href=""提现管理b/b/a
/dd
/dl
/div
/div
style
.nav_left{background: #232b35;height: 100%;width: 220px;min-height: 600px;position: fixed;top: 100px;left: 0;}
.nav_leftlist{}
.nav_leftlist h2{height: 50px;line-height: 50px;padding-left: 40px;font-size: 16px;background: #3b444f;color: #999999;position: relative;cursor: pointer;}
.nav_leftlist h2 b{position: absolute;top: 20px;left: 13px;width: 16px;height: 9px;background: url(../images/icon04.png) no-repeat;background-position: 0 0;cursor: pointer;}
.nav_leftlist h2 b.cur{background-position: -16px 0;}
.nav_leftlist dl{}
.nav_leftlist dl dt{height: 50px;line-height: 50px;background: #2c3643;font-size: 16px;color: #ffffff;padding-left: 60px;position: relative;cursor: pointer;}
.nav_leftlist dl dt b{position: absolute;top: 20px;left: 34px;width: 16px;height: 9px;background: url(../images/icon04.png) no-repeat;background-position: 0 -10px;}
.nav_leftlist dl dt b.cur{background-position: -16px -10px;}
.nav_leftlist dl dd{}
.nav_leftlist dl dd a{display: block;height: 50px;line-height: 50px;color: #fff;padding-left: 80px;font-size: 16px;position: relative;}
.nav_leftlist dl dd a.cur{color: #ee581c;}
.nav_leftlist dl dd a.cur b{display: block;position: absolute;top: 16px;right: -1px;width: 11px;height: 18px;background: url(../images/icon04.png) no-repeat;background-position: 0 -20px;}
/style
/body
script type="text/javascript" src="../js/jquery.js" /script
script type="text/javascript"
$(function(){
$('.nav_leftlist').on('click', 'h2', function(event) {
$(this).siblings('dl').toggle();
if($(this).siblings('dl').css('display')=='none'){
$(this).find('b').addClass('cur');
}else{
$(this).find('b').removeClass('cur');
}
});
$('.nav_leftlist').on('click', 'dl dt', function(event) {
$(this).siblings('dd').toggle();
if($(this).siblings('dd').css('display')=='none'){
$(this).find('b').addClass('cur');
}else{
$(this).find('b').removeClass('cur');
}
});
})
/script
效果图:
1. jQuery 里面有很多东西是出于兼容性,历史遗留。
比如 .ready() 之类的函数,为什么会很scroll 有关,那是为了兼容某些ie。这种代码对于编程思想来说不仅没用,而且是杂音,你要筛选出来就得了解这段代码的变动,费心费力得不偿失。
2. jQuery 里面的代码不一定是最优的,例如事件委托,每一次事件触发都要调用选择器,实际上是效率很低的。但是我又比较懒,没有提交patch。
3. jQuery 实际上很容易写出来一个 barebone alternative,在使用的过程中多想,多思考多总结就可以了。
4. jQuery 这类框架里真正有思维挑战性的东西不多,一半以上是堆代码而已,剩下的一点价值在于架构、抽象、扩展能力。
5. 我有一句话与所有的同行分享:工程师让需求成为现实,优秀工程师化复杂为简单,顶尖工程师变不可能为可能;架构师掌握现在,优秀架构师展望未来,顶尖架构师创造时代。
jQuery 的设计目的是,让前端工程师的工作更简单更轻松,但它并不适合所有的前端工程师,假如你的目标是成为优秀架构师、顶尖架构师的话,你在jQuery里也看不清未来。
右击页面,点击“查看元素”或“查看源码”就可以查案网页的html
一般scriptjuqery代码/script标签包裹的就是写在页面上的jQuery代码
另外还有写在jQuery文件在页面通过script src="jquery文件地址"/script这里的地址一般是相对地址,找到相应的地址打开文件就可以了
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流