今年2月20日买的书,今天是5月26,三个月来,除了周末休息一天,如果没有特殊情况,我都会每晚花两个小时看这本书,以及查各种与jquery源码相关的资料。今天总算是跌跌撞撞的看完了,有点小激动,也有点小失望——虽然看完了,但是用两个字概括看完的感受就是:“糊涂”!

  其实我并没有真的看完这本书,因为sizzle那块我看了一点就看不下去了,那块确实太麻烦了。miaov出的视频教程中,讲师也承认那块太麻烦,所以暂时避开先不讲。

  看完了这么厚一本书(610+页),我想写长篇的评论,现在却写不出来,因为我没真正看懂jquery。我愿意分享学习过程中的经验给大家,现在也没有,因为我没看懂jquery。我想发表一些对jquery源码的看法,现在也没有,还是因为我没看懂jquery。不得不承认,jquery的源码确实很难。不是短时间内能吃透的。

  其实我也知道,想看懂一本书,看一遍不行。想学好jquery源码,光靠这一本书不行。

  虽然这本书给我了最初的指导,但是我觉得我这几个月是一直在绕弯、走弯路。一般在第一次探索某件事情,没有多少前人经验指导时,走弯路是不可避免的。但是走完了弯路之后,你就能发现捷径。我现在就觉得,如果再有人再去出jquery源码解读,一定要把jquery的存储结构,数据对象之间的关系给理透了。千万不要一上来就从第一行代码开始,一直讲到最后一行。

  我相信绝大部分学习者学jquery的目的还是想了解它的设计、结构以及技巧。根据8/2法则,20%的代码解决80%的需求,一定要有主有次,突出重点。例如讲到css那块,一定要先把jquery解决浏览器兼容的思路说明白了。再例如讲到事件,已定要先把事件是存储到缓存上、以及事件的存储结构讲明白。

  我们许多时候缺乏的是思考,所以我们才会把自己飞了九牛二虎之力才挣扎的学完的东西,又填鸭式的教给了别人。如果我们能站在jquery作者的角度去思考jquery的源码,可能会更好一些。这样我们所面对的问题就不只是jquery哪一行代码是什么意思的问题了,我们还得去思考为什么会有jquery?它的出现是应对哪些问题?带来哪些便利?我们是如何思考这个问题如何设计解决这个问题的?直到最后,才是源码。

  这段时间我白天会抽一点时间看设计模式。当时我就试着用上面那个思路去思考,解决效果出人意料。虽然现在我还没有整理完全部的设计模式,但我整理过的,我都能理解并记住了。回想以前学过很多次设计模式,学一次忘一次。写过两篇关于这个的博客,得到一点点赞,至少已经有人也认同了。

跌跌撞撞的看完了《jquery技术内幕》的更多相关文章

  1. “声讨”高云的《jQuery技术内幕》

    1. 前言: 其实本文有点太标题党了,哈哈,见谅.说“声讨”,就是说说我作为一个<jQuery技术内幕>一个忠实读者,读本书的一些想法和建议. 2014年2月20日,我收到了<jQu ...

  2. 《jQuery技术内幕:深入解析jQuery架构设计与实现原理》

    <jQuery技术内幕:深入解析jQuery架构设计与实现原理> 基本信息 作者: 高云 出版社:机械工业出版社 ISBN:9787111440826 上架时间:2014-1-10 出版日 ...

  3. jQuery技术内幕 深入解析jQuery架构设计与实现原理

    jquery的外衣 jquery是一个轻量级的JS框架 //以下截取自jquery源码片段 (function( window, undefined ) { /* 源码内容 */ })( window ...

  4. 【jquery】 【jQuery技术内幕】阅读笔记 一

    jQuery( object ) jquery在构造对象时,除了可以用十分好用的css选择器来查找DOM,还可以传入一个javascript对象来生成一个jquery对象. // JS var foo ...

  5. jQuery技术内幕电子版5

    4. 转换HTML代码为DOM元素 先创建一个文档片段DocumentFragment,然后调用方法jQuery.clean(elems, context, frag-ment, scripts)将H ...

  6. jQuery技术内幕电子版4

    参数selector是复杂HTML代码 则利用浏览器的innerHTML机制创建DOM元素 第157行:如果HTML代码满足缓存条件,则在使用转换后的DOM元素时,必须先复制一份再使用,否则可以直接使 ...

  7. jQuery技术内幕预览版.pdf3

    jQuery.fn.init(selector,context,rootjQuery):构造函数 jQuery.fn.init() 负责解析参数 selector 和 context 的类型,并执行相 ...

  8. jQuery技术内幕预览版.pdf2

    第二章 构造jQuery对象 jQuery对象是一个类数组对象,含有连续的整型属性.length属性和大量的jQuery方法,$()是jQuery()的缩写 构造函数jQuery() 如果调用构造函数 ...

  9. jQuery技术内幕预览版.pdf1

    第一章 总体构架 jQuery模块可以分为3部分:入口模块.底层支持模块和功能模块 浏览器功能测试模块提供了针对不同浏览器功能和bug的测试结果,其它模块基于测试结果解决浏览器之间的兼容性问题 回调函 ...

随机推荐

  1. idea常用插件介绍

    常用插件 mybatis mapper 选择plugins,搜索mybatis plugin 激活教程 使用 插件的使用

  2. mysql 数据类型及java对应关系

    http://www.cnblogs.com/jerrylz/p/5814460.html    Java数据类型和MySql数据类型对应表 http://www.cnblogs.com/yiwd/p ...

  3. (最短路 Floyd diskstra prim)Frogger --POJ--2253

    题目链接:http://poj.org/problem?id=2253 Frogger Time Limit: 1000MS   Memory Limit: 65536K Total Submissi ...

  4. HDU3506环形石子合并问题

    HDU3506环形石子合并问题 线性的石子合并问题比较好理解,环形的转成线性的方法就是扩展数组 1 2 3 . . . n 1 2 3 ... n 依据是我们最优的取值可以是 1 --- n也能是 2 ...

  5. SRM480

    250pt: 题意:给定n个网站,以及n个网站的关键词,还有一个危险词库.如果一个网站的关键词中>=th的危险词,那么这个网站便是危险的.同时,他的所有关键词加入危险词库.问,有多少个危险网站. ...

  6. ORACLE中的FTP例子代码

    http://blog.csdn.net/mashengwang/article/details/5982663 CREATE OR REPLACE DIRECTORY my_docs AS '/u0 ...

  7. 7.css浮动与定位

    外边距塌陷 解决方案: ◆给父盒子加border ◆overflow:hidden; bfc 行内元素可以定义左右的内外边距,上下会被忽略掉. 行内块可以定义内外边距. 文档流(标准流) 元素自上而下 ...

  8. 如何让cxgrid既能充满又能根据内容进行宽度调整?

    如何让cxgrid既能充满又能根据内容进行宽度调整? 原创 2009年02月25日 10:10:00 2793 1.选中cxgridview,在属性中找OptionsView--->ColumA ...

  9. 分形之谢尔宾斯基(Sierpinski)四面体

    前面讲了谢尔宾斯基三角形,这一节的将对二维三角形扩展到三维,变成四面体.即将一个正四面体不停地拆分,每个正四面体可以拆分成四个小号的正四面体.由二维转变到三维实现起来麻烦了许多.三维的谢尔宾斯基四面体 ...

  10. c#中的几种Dialog

    1.OpenFileDialog private void FileOpen_Click(object sender, EventArgs e) { OpenFileDialog openFile = ...