`
jljlpch
  • 浏览: 324025 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
社区版块
存档分类
最新评论

深入剖析ExtJS 2.2实现及应用连载导言

阅读更多

 

ExtJS是一个非常优秀的框架,不但能实现优美绚丽的Web应用。而且其源码架构思想及实现令人叫绝。任何一种优秀技术都会有一批布道者去分析研究并推广它,比如Spring

但是ExtJS结构过于庞大,相当多的开发者只能是对着其应用文档依葫芦画瓢地开发应用系统。这样一知半解的开发会导致开发中出现众多问题,比如性能,内存等等。而目前市场上ExtJS的书籍都是仅仅介绍其应用,很少有书去讲解其实现原理及内部运行机制,但是其对于开发者来讲是非常重要的。

不是没有人去深入分析ExtJS的源码,但其源码架构宏伟,所需知识众多,开发者在阅读其源码时一般都是一知半解,而市面上却没有剖析ExtJS技术这方面的书籍。笔者也是ExtJS源码分析大军中一员,在解读其源码之后那种兴奋和快乐,让自己觉得应该把它分享出去。于是在Blog中写了相关的源码分析文章。

但是发现这样不能起到很好的效果,因为不是所有读者都和自己一样,曾经枕着JavaScript权威指南、Ajax in Action书籍入眠。于是就萌发了把其形成一个完整体系,让开发者能深入了解ExtJS源码机制及实现并能将ExtJS最佳应用。

写书是一项枯燥乏味的工作,但也是一种痛并快乐着的孕育过程。对于作者呕心沥血完成的作品,其出版赚稿费本来是可以被人理解的。但是一些投机者让技术书市场失去它本来应有的纯洁和崇高。笔者骂过很多让自己花冤枉的写书者,为了不挨骂(那是不可能的),每时每刻都在想着给读者一份最满意的技术书。

最高境界的读书是厚积薄发,这是对读者要求,而其背后也隐含着对写者的要求,如何引导读者厚积薄发,这本是就是写者的义务。一本书的内容从其定下主旨开始就是浑然天成的整体,如东家之子,增之一分则太长,减之一分则太短。内容的多寡与缺失都失去它的完整性和艺术性。

为了达到这个目的,图书的内容无论从那个角度来看都应该是一条线串联着的。本书是ExtJS源码分析书,它把整个ExtJS的源码采用coreàelementàcomponent三个单词来串联。本书是ExtJS应用书,它采用网络办公系统实例应用贯穿着整本书的知识点。

读者可以从这条线出发,慢慢地扩展细化,最终到扩展到整个ExtJS体系。还可能通过整个ExtJS体系慢慢地收缩归纳,最终薄发到这条线上来。本书从内容的编排上也是一条线,它分成五个篇章,每个篇章都着相关的章节。这五部分是Introduction(入门)、Core(核心)、Element(元素)、Component(组件)、Apply(应用)。通过这几部分,读者不仅能应用ExtJS进行开发,而且还能了解其工作原理和机制,知其然知其所以然。

本书有以下几个特点:

首先这是一本源码分析书籍,源码分析不是简单地在其源码中标上注释,然后贴到书上充内容。它从其机制原理讲起,分析共为什么这样实现。本书的源码分析首先是从其机制,原理或流程入手,通过手动实现该原理或机制,之后一步一步引入到ExtJS中的源码实现。接着对其进行深化扩展和性能等方面的讲解。如对于动画特效,先手工实现,之后一步步地分析ExtJS中实现,最后觉得其不完整,加上JS矢量图的动画扩展。

其次它是一本ExtJS应用书籍,与其它应用书籍仅仅对ExtJS文档实例进行简单改造不一样。除了阐述原理流程的小应用之外,每章都有综合本章知识点应用的实例,而该实例又是办公系统一部分。对于这些综合实例,它采用迂回连续的方式进行布置,它在深入应用本章知识的同时还会采用后面章节的知识点。待到其后再去深入其知识点和应用。这样让读者先有实例应用的了解,之后深入其原理机制,再之后深入该知识点应用,这样就形成循序渐进的过程,同时也给每章增加了适当的难度。如事件机制那章中的Tabbox组件事件编写,它是建立在第二章的Tabbox组件基础之上,又引出Tree组件相关基本应用,在深入本章知识点同时又引出新的知识点。

这是一本深入JS技术书籍,源码分析是要用到JS知识,JavaScript权威指南对于JS入门的确很好,但是这里结合ExtJS源码对着JS知识点的应用来讲解,能达到事半功倍的效果。对于JS知识点,本书没有复制其它书籍内容,而在深入分析其它书籍没有讲到的内容(可以说本书并不是针对于那么JS初学者,对于初学者,在书上也给出其应该参数的书籍),对其重点难点一一进行剖析。如正则表达式,就分析了其解析原理和如何编写高效率的正则表达式。连对于eval函数,本书都对它进行了详细地分析。

它还是一本ExtJS扩展书籍,本书是站在一定高度去分析ExtJS,对于其源码中不足之处,笔者提出很多解决方法,如对于其继承采用xx.superclass.constructor.call继承的方式进行了扩展,使它支持this.supper。对于函数扩展,在结合所有的类库实现的基础上,也对其createDelegate进去扩展。当然更不用讲对于应用组件的扩展进行自己的组件库。

上面四个特点贯穿在本书的五个篇章之中:

   入门篇是对ExtJS进行一个整体的概述,让读者从宏观上把握整个ExtJS。它包含二章,第一章是通过理论性的图表及文字去概述整个ExtJS及其相关。而第二章则是带领读者通过一个实例来纵览整个ExtJS的功能应用。读者不但能从理论上把握ExtJS,还能从实例中去了解整个ExtJS

核心篇则是深入入门篇的所讲的ExtJS的核心基础知识。该步篇包含一个机制,二个模型,六个扩展。其中对于类、函数、字符串,日期、及定时任务的六个扩展在第三章介绍。这是ExtJS中核心中核心。机制指的是事件机制,ExtJS事件不仅扩展了浏览器的事件机制,同时还采用观察者模式构建组件事件机制用来架构整个ExtJS,这个在第四章,二个模型分别指是其模板模型和数据模型,ExtJS的显示模块化和数据分离化就是通过这两个模型完成,它们分别在第56章。

元素篇是对浏览器DOM元素进行了扩展的相关讲解。它有三个基本应用和两个效果。两个效果分别是其动画特效和拖曳实现。在第910章中深入浅出地分析了它们的原理、机制及扩展应用。三个基本应用是操作,查找和样式。其中操作和查找是Dom元素必不可少的基本,在第7章中结合ExtJS元素的这方面扩展来进一步深入对DOM元素的理解和使用。样式是元素及至整个ExtJS中非常重要的部分,它是构建ExtJS绚丽多彩的基础。在第8章中,我们会细化CSS让读者了解到样式的强大功能。

组件篇是ExtJS的重点,因为应用都是围绕着组件,学好ExtJS,必须要学好组件。该篇内容分成一个布局二个模型四大组件。布局是用来进行页面排列的,ExtJS提供了九大布局,在第13章中,除了分析应用这九大布局之外,还会扩展自己的布局。二个模型指的是组件模型和容器模型。一些组件都遵循组件模型,在第11章,我们会分析它的原理,应用等。对于容器模型,则是放在第12章中,布局是容器的布局,在这一章,我们会详细地分析panel等布局的容器的应用。对于FormGridTreeMenu四大组件则分别在其后的四章进行分析讲解。

应用篇是介绍在开发使用ExtJS的经验。第18章通过性能,调试,定制ExtJS等方面介绍如何在应用开发使用ExtJS。第19章则是把办公系统的例子综合出来,通过一个实例要总结本书的内容。

无论如何,作者水平毕竟有限,书中难免会出现这样那样的错误,但是作者在写书时决不会回避任何的问题和难点,对于一些别人回避的点都采用作者自己的思考要解释。当然这或许也会有一些问题,但在书中都会标明,如有不对之处,请读者指出。

注:本书还没有完成初稿,其语言简练、错别字啊等都有会很多问题的,现在以连载的形式放在Bloghttp://jljlpch.iteye.com/)。希望读者能指出其中不足。放在blog上的目的,是为在能认识众多使用Ext并熟悉Javascript的读者,在当前经济危机大多数公司都在裁员的背景下万一失业能找到混口饭吃的地方。本书还是可能会出版的,所以谢绝转载

 

分享到:
评论
14 楼 myclover 2008-12-28  
不错,顶一个
13 楼 fangzhouxing 2008-12-24  
谢谢作者,让更多人的能熟悉和掌握ExtJS!
12 楼 fins 2008-12-22  
jljlpch 写道
第3章开始
可以到
http://jxnuprk.cnblogs.com/中去阅读相关的内容

javaeye中发文章老是截断,而且经常出错。


阶段没遇到过 但是 CODE 标签的处理还是有问题

代码显示出来常常少东西或 多东西




================

在此 再次 强烈谴责一下 JE的管理员,  JE的管理员不按套路出牌.

吐舌头的表情符号是  " : wink : " (去掉空格)
而不是按照 国际惯例  " : P " (去掉空格)

而且更可恨的是 JE把 " : P " 这个经典符号 JE擅自做主的做成了 一个不知所云的笑脸.
示例如下:

: wink :   ----- 
: P   ----- 

而且 :+单词+: 的表情符号是 早些年 VBB等论坛遗留下来的, 属于"单词类"
而 : P 这类符号是 表情符号的另一派系 属于 "象形类".
把两种不同风格的表情符号混合着来用 这种用法实在让人很ORZ.



由于JE不按国际管理行事, 导致的结果就是,
我在发帖子时 需要在键盘与鼠标之间来回转换
因为我不知道 我按照国际惯例输入的表情 ,会被JE转换成什么鬼东西
为了安全起见 我必须去点击表情图标.

在此 对JE的这种做法 表示强烈抗议 & 谴责.

此谴责声明我会附带在我发的每一篇帖子之后 直到JE管理员改进 表情符号 系统为止.


从中国zf以往的"抗议 & 强烈谴责"中 我们可以了解到
我这种行为其实是极其幼稚 而且也是根本没JB用的
(早就在站务圈子里提过这个问题了 无人理会)

不过 我想我还是 表达一下我的态度吧 否则心里难受的想哭 :'(


11 楼 jljlpch 2008-12-22  
第3章开始
可以到
http://jxnuprk.cnblogs.com/中去阅读相关的内容

javaeye中发文章老是截断,而且经常出错。
10 楼 fins 2008-12-22  
文章是好文章 这个系列也很棒 加油 支持你!

从哪章开始 分析源代码??


================

在此 再次 强烈谴责一下 JE的管理员,  JE的管理员不按套路出牌.

吐舌头的表情符号是  " : wink : " (去掉空格)
而不是按照 国际惯例  " : P " (去掉空格)

而且更可恨的是 JE把 " : P " 这个经典符号 JE擅自做主的做成了 一个不知所

云的笑脸.
示例如下:

: wink :   ----- 
: P   ----- 

而且 :+单词+: 的表情符号是 早些年 VBB等论坛遗留下来的, 属于"单词类"
而 : P 这类符号是 表情符号的另一派系 属于 "象形类".
把两种不同风格的表情符号混合着来用 这种用法实在让人很ORZ.



由于JE不按国际管理行事, 导致的结果就是,
我在发帖子时 需要在键盘与鼠标之间来回转换
因为我不知道 我按照国际惯例输入的表情 ,会被JE转换成什么鬼东西
为了安全起见 我必须去点击表情图标.

在此 对JE的这种做法 表示强烈抗议 & 谴责.

此谴责声明我会附带在我发的每一篇帖子之后 直到JE管理员改进 表情符号 系

统为止.


从中国zf以往的"抗议 & 强烈谴责"中 我们可以了解到
我这种行为其实是极其幼稚 而且也是根本没JB用的
(早就在站务圈子里提过这个问题了 无人理会)

不过 我想我还是 表达一下我的态度吧 否则心里难受的想哭 :'(


9 楼 cs1999 2008-12-22  
支持楼主!啥时出了,记得发贴。
8 楼 crabboy 2008-12-10  
出书吧。咱买
7 楼 jljlpch 2008-12-10  
hustyhb 写道
出书了我一定买一本!


非常感谢支持!!
6 楼 hustyhb 2008-12-10  
出书了我一定买一本!
5 楼 hustyhb 2008-12-10  
支持楼主!!!
4 楼 jljlpch 2008-12-05  
peacock 写道
熟能生巧,我相信这个道理。
ajax其实并不难,相反我觉得比较简单,简单的功能实现强大的功效,这也是为什么ajax得到大量应用的原因
ajax只是js的一个很小的子集,难的是js


熟能生巧,对。
3 楼 peacock 2008-12-05  
熟能生巧,我相信这个道理。
ajax其实并不难,相反我觉得比较简单,简单的功能实现强大的功效,这也是为什么ajax得到大量应用的原因
ajax只是js的一个很小的子集,难的是js
2 楼 paggywong 2008-12-05  
walkman 写道
使用 AJAX 的结果是,用户爽了,开发者头大了,这就是代价

你的思想太过时了
1 楼 walkman 2008-12-05  
使用 AJAX 的结果是,用户爽了,开发者头大了,这就是代价

相关推荐

    深入剖析ExtJS 2.2实现及应用连载(全集) DOC精排版!

    《深入剖析ExtJS 2.2实现及应用》是一本专为ExtJS开发者精心打造的指南,旨在揭示ExtJS 2.2的核心实现原理和应用技巧。这本书针对那些希望深入理解ExtJS,而不只是停留在应用层面的开发者。作者通过详尽的源码分析和...

    深入剖析ExtJS_2.2实现及应用

    《深入剖析ExtJS_2.2实现及应用》是一本专为高级Web开发者设计的书籍,专注于探讨ExtJS 2.2版本的源码结构、实现机制和最佳实践。这本书旨在帮助开发者超越仅仅依赖官方文档的阶段,深入理解ExtJS的内在工作原理,...

    ExtJS+2.2实现及应用连载.rar

    本资料“ExtJS+2.2实现及应用连载”旨在深入探讨这一版本的特性和实际应用。 一、ExtJS 2.2的核心特性 1. 组件化开发:ExtJS 2.2提供了大量预定义的UI组件,如表格、表单、树形视图、菜单、工具栏等,开发者可以像...

    EXTJS 2.2 离线帮助文件CHM格式

    通过深入学习这些文档,开发者可以有效地利用EXTJS的强大功能来创建复杂的Web应用,同时提高开发效率和代码质量。 总之,EXTJS 2.2的离线CHM帮助文件为开发者提供了一个全面且方便的参考资料,无论是初学者还是经验...

    [上传下载]ExtJS 2.2 开源网络硬盘系统_dogdisk.zip

    ExtJS 2.2 是一个历史悠久的JavaScript框架,主要用于构建富客户端Web应用程序。这个开源网络硬盘系统_dogdisk.zip很可能是基于ExtJS 2.2版本开发的一个文件存储和管理应用,它允许用户通过Web界面进行文件的上传、...

    ExtJS 2.2 API文档

    `Ext2.2docs.chm`文件作为API文档,包含了上述所有功能的详细说明,包括类的定义、方法、属性和事件,是开发ExtJS 2.2应用的重要参考资料。开发者可以通过查阅这个文档来了解每个类的功能,以及如何在实际项目中使用...

    extjs 2.2

    ExtJS 2.2是Sencha公司开发的一个用于构建富客户端Web应用的JavaScript库,它在Web应用程序的用户界面设计和交互性方面提供了强大的功能。这个版本发布于2008年,是ExtJS框架发展过程中的一个重要里程碑,为开发者...

    上传下载ExtJS 2.2 开源网络硬盘系统-dogdisk

    在本项目中,dogdisk是一个基于ExtJS 2.2实现的网络存储解决方案,它提供了文件的上传和下载功能,为用户提供了一种在线管理其数据的方式。 【描述】中的"[上传下载]ExtJS 2.2 开源网络硬盘系统_dogdisk"进一步强调...

    java项目之ExtJS 2.2 开源网络硬盘系统(jsp上传下载).zip

    java项目之ExtJS 2.2 开源网络硬盘系统(jsp上传下载)java项目之ExtJS 2.2 开源网络硬盘系统(jsp上传下载)java项目之ExtJS 2.2 开源网络硬盘系统(jsp上传下载)java项目之ExtJS 2.2 开源网络硬盘系统(jsp上传...

    extjs2.2支持包

    以前一直没找到extjs2.2的全包,这次在添加Myeclipse的插件时,我找了好久才找到。现在分享下,以免兄弟姐妹们到处去找:

    extjs2.2开发实战项目 已经发布运行

    在这个项目中,我们深入探讨EXTJS2.2的各种控件及其在实际开发中的应用,同时结合Java和JavaScript技术,实现了一个完整的公司级项目。以下是对该项目的详细解析: 1. **EXTJS2.2核心概念**:EXTJS2.2提供了丰富的...

    (基于JSP的完整java毕业设计)ExtJS 2.2 图书管理系统-bmsh(附源码).rar

    (基于JSP的完整java毕业设计)ExtJS 2.2 图书管理系统(基于JSP的完整java毕业设计)ExtJS 2.2 图书管理系统(基于JSP的完整java毕业设计)ExtJS 2.2 图书管理系统(基于JSP的完整java毕业设计)ExtJS 2.2 图书管理...

    ExtJS 2.2 开源网络硬盘系统-dogdisk.zip

    ExtJS 2.2 是一个历史悠久的JavaScript框架,主要用于构建富客户端Web应用程序。这个开源网络硬盘系统,称为“dogdisk”,是基于此版本的ExtJS构建的,它提供了一个在线存储和管理文件的平台,类似于云盘服务。下面...

    extjs 2.2中文开发文档

    Extjs 2.2 中文开发文档 , 很少有错误。 我现在做开发,用的就是2.2版本的。

    extjs 2.2(oozie需要的)

    ExtJS 2.2 是一个基于 JavaScript 的前端框架,用于构建富互联网应用程序(RIA)。它提供了丰富的组件库,包括表格、表单、树形视图、图表和其他多种UI元素,支持拖放、数据绑定和自动布局等功能。在给定的上下文中...

    EXT 中文手册 搭配ExtJs2.2实例更快将ExtJs入手

    EXT中文手册是针对JavaScript库ExtJs的一份详细指南,旨在帮助开发者更快速地掌握和运用ExtJs 2.2...通过深入学习和实践手册中的内容,你将能够熟练掌握ExtJs 2.2,进而构建出功能强大、用户体验优秀的Web应用程序。

    (基于JSP的完整java毕业设计)ExtJS 2.2 开源网络硬盘系统(附源码)

    (基于JSP的完整java毕业设计)ExtJS 2.2 开源网络硬盘系统(附源码)(基于JSP的完整java毕业设计)ExtJS 2.2 开源网络硬盘系统(附源码)(基于JSP的完整java毕业设计)ExtJS 2.2 开源网络硬盘系统(附源码)...

Global site tag (gtag.js) - Google Analytics