今年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. C#窗体操作的小技巧

    窗体在屏幕居中 ) - (), (Screen.GetBounds() - (), this.Width, this.Height, BoundsSpecified.Location);

  2. leetcode-[3]Max Points on a Line

    Given n points on a 2D plane, find the maximum number of points that lie on the same straight line 思 ...

  3. BUG 图片元素img下 高度超出 出现多余空白

    BUG 图片元素img下 高度超出 出现多余空白 1.将图片转换为块级对象 即,设置img为“display:block;”.   2.设置图片的垂直对齐方式 即设置图片的vertical-align ...

  4. 在Ubuntu上安装pyenv

    因为找到一个域名枚举的脚本使用Python3编写的,而我一直习惯的是使用Python2.7,在自己的Windows7上再安装个Python怕混了,于是想着在VPS上装个Python的版本管理工具,也方 ...

  5. SPRING框架中ModelAndView、Model、ModelMap区别及详细分析

    转载内容:http://www.cnblogs.com/google4y/p/3421017.html 1. Model Model 是一个接口, 其实现类为ExtendedModelMap,继承了M ...

  6. 《mysql必知必会》学习_第11章_20180801_欢

    第11章:使用数据处理函数. P69 文本处理函数,upper()函数把文本变成大写字体. select vend_name,upper(vend_name) as vend_name_upcase ...

  7. [杂谈] 一个关于 as 的小测试

    代码如下:   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 procedure TForm1.Button1Click(Sender: TObject); va ...

  8. C语言Socket-模拟远程CMD(客户端向服务器发送命令,服务器执行该命令)

    服务端(server) #include <stdio.h> #include <winsock2.h> #pragma comment(lib,"ws2_32.li ...

  9. ZJOI Round2游记

    虽然一试很惨但是二试还是要来玩一下的 Day 0 到余姚了,然后到余姚边上的宾馆住来下来 顺便一问老师们对边上是不是有什么误解-- 吃完晚饭就回宾馆颓了 话说半夜真刺激--住隔壁那一位手突然骨折了,本 ...

  10. [CTSC2008]网络管理(整体二分+树剖+树状数组)

    一道经典的带修改树链第 \(k\) 大的问题. 我只想出三个 \(\log\) 的解法... 整体二分+树剖+树状数组. 那不是暴力随便踩的吗??? 不过跑得挺快的. \(Code\ Below:\) ...