`
sp42
  • 浏览: 149259 次
  • 来自: Canton
文章分类
社区版块
存档分类
最新评论

Ext源码概览

阅读更多
入门导向

Ext的新手用户可以通过下列不同的途径获取学习资源:API文档、维基百科全书、日益丰富的教程、论坛、IRC频道等等(参阅Learn ),关于这些各个方面在EXT官网上都有。但最重要的可用资源,可以说是Ext源代码本身。可以这样方便地学习源代码(Ext的项目毕竟是开源的),不仅能助你体验Ext,而且还能让你接触到大量的Javascript高级技巧和最佳实践,进一步提升自身的编码水平。

揭示源代码

Javascript是一门解释型的语言,意味着在运行之前代码是没有经过编译的。按照这种理论,在你网站上所发播的Ext代码是我们看的懂的(human-readible)。我这里说“理论上”,是因为实际情况中,很多源代码是经过某些自动化步骤的处理,生成很小几行的文件最终发布的,通过剔除空白符号和注释,或混淆等的方法,以减小文件大小。

仔细看看EXT标准源码ext-core.js,你会发现这是一段超长的源码。这是刚才提及的自动化步骤生成的结果--对浏览器来说不错!可是对于我们是难以阅读的。

ext-core.js

/*
 * Ext JS Library 2
 * Copyright(c) 2006-2007, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://www.extjs.com/license
 */
 
Ext.DomHelper=function(){var _1=null;var _2=/^(?:br|frame...
 
Ext.Template=function(_1){if(_1 instanceof Array){_1...
...


接着看下去的是ext-core-debug.js (注意在文件名后面加上-debug的JS文件), 我会发现是全部已格式化好的源代码。这个文件是配合调时器所使用的,像Firebug的工具能够可以让你一步一步地、一行一行地调试代码。你也会发现文件的体积将近大了一倍之多,这便是没有压缩或混淆的缘故。

ext-core-debug.js
/*
 * Ext JS Library 2
 * Copyright(c) 2006-2007, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://www.extjs.com/license
 */
 
Ext.DomHelper = function(){
    var tempTableEl = null;
    var emptyTags = /^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i;
    var tableRe = /^table|tbody|tr|td$/i;
...

该调试版本可以在调试阶段方便地检查EXT库运行到哪一步,但是你还是会错过一个有价值的...代码注释!要完整地看到代码,就要阅读真正的原始代码!

发布Ext源码时的一些细节

你在download得到的压缩文档,包含在这些文件夹之中的,有一source的子目录。在这个文件夹里面,正如所料,是全部的EXT的源文件,遵从Lesser GNU (LGPL) 开源的协议。对于EXT开发者来说应该非常适合。

用你日常使用文本编辑器打开源代码的任意一个文件(推荐有高亮显示的编辑器,或是在这里full-featured IDE看看),便可以开始我们的探险!

我应该从哪里开始?

Ext代码库里面包含了许多各种各样的文件,甚至令人觉得有点望而生畏。好在,Ext是一个通过充分考虑后而设计的JavaScript库,--在底层的代码为各项应用提供稳健的基础如跨浏览器的各种DOM操控,使得在上层的类classes运行于一个较高级的抽象层面(class 一术语与我们已习惯的Java和C++语言稍微有所不同,但一些概念如继承则可是如此类推去理解的--有关面向对象的JavaScript的更多资料,请参见Introduction to object-oriented (OO) JavaScript)。

这意味着,当浏览源码的时候,采取“自顶向下(bottom-up)”还是“自下向顶(top-down)”的方式,都是无关紧要的。你所熟悉API里面的代码已经是属于最高的抽象层面的范畴,你可以根据你的兴趣,顺着这些你熟悉的API逐步深入。但是你若认同我的看法,并打算深入了解其个中原理,最理想的地方是从底层代码开始。

适配器Adapters

浏览器读取第一个源文件,当中的一个任务就是创建Ext对象本身。
Ext.js

Ext = {};


Ext成型于YahooUI的Javascript库的扩展。在当时,Ext须依赖YUI的底层代码来处理跨浏览器的问题。现在ExtJS已经是独立、免依赖的库了(standalone ),你可将YUI替换为另外你所选择javascript库,如prototype、jQuery、或者是这些之中的最佳选择,-Ext自带的底层库。负责将这些库(包括Ext自带的底层库)映射为Ext底层库的这部分代码,我们称之为适配器(Adapters)。这部分源码位于source/adapter的子目录。当项目引入Ext的时候便需要选择好你准备使用的适配器。

核心Core

source/core中的文件是构建于适配器API之上的“相对”最底层的源码。有些的源码甚至“底层”到直接为独立库的代码直接使用。这意味着应先了解和学习这整个库,再学习剩余的部分也不迟。要了解Ext的各种“Magic”和核心层面,就应该把重点放在source/core 目录下的各个源代码。

出处:http://extjs.com/learn/Manual:Ext_Source_Overview_%28Chinese%29#
分享到:
评论
26 楼 sp42 2008-08-25  
混淆的话,国产的JSA不错,可支持全局变量混淆
25 楼 chanball 2008-08-24  
知道用什么工具可以达到像Ext那样“压缩或混淆”后的效果,或者说Ext是用什么工具做的“压缩或混淆”?
24 楼 罪恶的小手 2008-08-22  
写的不错很细致 ! 希望还有下文
23 楼 xzj127 2008-07-18  
天天 再用Ext 做项目..确实很好啊..
不过一些整合 还有待研究啊 。。


       这个是好文章啊。
22 楼 peterwillcn 2008-04-26  
不错哈...好文章呀
21 楼 zwangz 2008-04-24  
怎么不全啊???
20 楼 sp42 2008-04-24  
andycui 写道
感觉代码好难读懂啊,太复杂了

建议从YUI的OO体系读起,以Observer模式为重点。
19 楼 andycui 2008-04-23  
感觉代码好难读懂啊,太复杂了
18 楼 cljspn 2008-02-29  
好文章呀,Ext是什么呀
17 楼 birdtsai 2008-01-12  
以前用了AJAX里的DWR框架,稍看了下楼主对Ext的讲解,感觉有异曲同工之妙!值得学习,现学习先......稍有心得再回来谈谈
16 楼 mac521 2008-01-11  
希望能有更多的讲解
15 楼 mienimaer 2008-01-02  
我下载文档来学习了,谢谢分享~
14 楼 jacklan 2007-12-21  
支持!!!
13 楼 npshj 2007-12-20  
不过,支持Ext
12 楼 javaeyehoney 2007-12-18  
不错   说的很好  继续 关注
11 楼 baiziyun 2007-12-14  
关注中!!!
10 楼 ben_liang 2007-12-12  
lz,讲的是1.1
9 楼 ben_liang 2007-12-12  
好~~~但源码好难看得懂~~~
8 楼 zhanjia 2007-12-11  
感谢诸位, 真令我兴奋
7 楼 sunxboy 2007-12-07  
好文章,Ext很有前途.
继续关注

相关推荐

    Ext后台界面源码0000001

    #### 一、源码概览 在《Ext后台界面源码0000001》中,我们可以看到一个简洁而完整的ExtJS后台管理系统的示例代码。这份源码主要通过HTML、CSS以及少量的JavaScript(虽然在给定的部分内容中没有展示出来)来实现了...

    Ext 教程详解 适

    - EXT源码概述:深入理解EXT的源码可以帮助你更好地定制和优化组件,EXT的源码结构清晰,模块化程度高。 - 揭示源代码:通过阅读EXT的源码,你可以学习到如何扩展已有组件,或者创建自定义组件。 - 发布EXT源码时的...

    EXT-In-FirstStep

    - 探讨EXT源码发布时的注意事项,包括命名空间、模块化等,有助于理解和维护代码。 ### 核心概念解析 #### 6.1 Javascript中的作用域(scope) - 解释作用域在JavaScript中的重要性,以及如何在EXT中正确使用作用域...

    ext学习文档

    - **发布Ext源码时的一些细节**: 讨论了发布EXT源码时需要注意的事项。 - **我应该从哪里开始?**: 给出了新手入门的建议。 - **适配器Adapters**: 介绍了适配器模式在EXT中的应用。 - **核心Core**: 探讨了EXT的...

    EXT 中文手册

    9. EXT 源码概述:为开发者提供EXT源码结构和主要类的概览,帮助理解EXT的工作原理。 10. 揭示源代码:深入EXT的源码,帮助开发者学习EXT的实现细节和最佳实践。 11. 发布 Ext 源码时的一些细节:介绍如何打包和发布...

    ext-word文档

    #### EXT源码概述 深入了解ExtJS的源码可以帮助开发者更好地掌握其工作原理。ExtJS的源码组织结构清晰,分为多个模块,如`core`(核心)、`adapter`(适配器)等。通过研究源码,可以学习到如何扩展和自定义组件。 ...

    asp.net ext 中文手册

    EXT源码概述 深入理解EXT的源码对于高级开发人员来说至关重要。源码分析可以帮助开发者更好地掌握框架的工作原理,从而更有效地进行调试和优化。源码概述章节通常会介绍EXT的架构设计、关键模块的功能及其实现方式...

    EXT最新使用手册

    - **源代码结构**: 介绍了EXT源码的基本结构,包括核心模块、适配器等。 - **核心模块**: - **适配器(Adapters)**: 提供不同平台的支持。 - **核心(Core)**: 包含基本的DOM操作和事件处理等功能。 - **作用域...

    EXT-js-中文手册

    - **细节讲解**:特别关注了在发布EXT源码过程中需要注意的细节问题,如兼容性考虑、性能优化等。 #### 10. EXT程序规划入门 - **准备工作**:介绍了在开始开发EXT应用之前需要做的准备工作,如搭建开发环境、理解...

    PHP源码分析

    #### 源码结构概览 PHP的源码结构相对清晰,主要包括以下几个部分: 1. **main/**:包含PHP的主要初始化和关闭函数。 2. **Zend/**:存放Zend引擎的源代码,包括编译器、虚拟机等。 3. **ext/**:存放各种PHP扩展的...

    EXTJS.docx

    - **ext-all-debug.js**:完整的EXT源码,未经过压缩,便于阅读和调试。 - **ext-all.css**:EXT的样式文件,定义了组件的外观和布局。 #### 功能概览 EXTJS的功能强大且多样化,以下几点尤为突出: - **数据展示...

    SDE API的调用源码

    #### 标题解读:“SDE API的调用源码” 此标题明确指出文章的核心内容是关于SDE API的调用代码示例,主要面向的是初学者或需要在.NET环境下使用SDE C API进行数据库操作的开发者。 #### 描述解析:“初学者很好的...

    深入理解PHP之源码目录结构与功能说明

    通过本文,我们可以了解到PHP源码目录结构的概览,并且认识到了深入理解这些内容对于提升PHP开发水平的重要性。无论是对PHP源码的编译过程、内存管理,还是对特定功能的实现和扩展,了解源码目录结构和相关文件都能...

    Extjs4.0视频教程和源代码,另附文档翻译

    - **新特性概览**:介绍了Extjs4.0相对于前几个版本的主要改进之处,如新的UI组件、增强的性能、更好的响应式设计支持等。 - **演示与实践**:通过多个实例展示了这些新特性的具体用法,帮助开发者快速上手并利用...

    沃支付JAVA

    一、沃支付API接口概览 沃支付的JAVA接口通常包括以下几个核心部分: 1. **商户注册与管理**:此部分涉及到商户在沃支付平台的注册、信息更新和账户管理。开发者需要了解如何申请商户ID和密钥,这些都是进行交易的...

    Release Notes for MMS-EASE Lite Revision 19

    5. 更新内容概览:此次更新包含了新的或改动的软件特性、漏洞修复、已知软件异常情况以及软件变更的详细信息。 6. 新增和变更的软件特性:特别提到了IEC 61850标准第二版的变更,包括对SCL解析器的改进,允许在FCDA...

Global site tag (gtag.js) - Google Analytics