`

Ext 2-EXT源码概述

    博客分类:
  • Ext
阅读更多
    揭示源代码
Javascript是一门解释型的语言,意味着在运行之前代码是没有经过编译的。按照这种理论,在你网站上所发播的Ext代码是我们看的懂的(human-readible)。我这里说“理论上”,是因为实际情况中,很多源代码是经过某些自动化步骤的处理,生成很小几行的文件最终发布的,通过剔除空白符号和注释,或混淆等的方法,以减小文件大小。 仔细看看EXT标准源码ext-core.js,你会发现这是一段超长的源码。这是刚才提及的自动化步骤生成的结果--对浏览器来说不错!可是对于我们是难以阅读的。

    ext-core.js
/* * Ext JS Library 1.1 * 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 1.1 * 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逐步深入。但是你若赞同我的看法,并打算深入了解其个中原理,最理想的地方是从底层代码开始。

这意味着,当浏览源码的时候,采取“自顶向下(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 目录下的各个源代码。
分享到:
评论

相关推荐

    ext-1.0源码+部分中文解读

    本文将深入EXT-1.0的源码,探讨其中的核心概念和技术,以及部分中文解读。 1. **EXTJS概述** EXTJS是一个基于浏览器的JavaScript框架,它允许开发者创建复杂的、交互式的Web应用程序,无需深入了解底层HTML、CSS和...

    EXT-js-中文手册

    EXT源码概述 - **源码分析**:深入分析EXT的源码结构,帮助开发者理解其内部机制。 - **细节讲解**:特别关注了在发布EXT源码过程中需要注意的细节问题,如兼容性考虑、性能优化等。 #### 10. EXT程序规划入门 - *...

    EXT-In-FirstStep

    ### EXT源码概述 #### 5.1 揭示源代码 - 了解EXT的源码结构对于深入学习框架原理和自定义组件至关重要。 #### 5.2 发布Ext源码时的一些细节 - 探讨EXT源码发布时的注意事项,包括命名空间、模块化等,有助于理解和...

    cocos2dx-ext-master.zip_cocos2dx

    一、cocos2dx-ext概述 cocos2dx-ext是Cocos2d-x社区为解决原生C++与Java之间的交互问题,以及提高游戏性能而设计的扩展库。它包含了各种实用的模块,如物理引擎、粒子系统、UI组件、网络通信等,这些模块可以直接在...

    深入浅出EXT JS 源码----下载不扣分,回帖加1分,欢迎下载,童叟无欺

    深入浅出EXT JS 书中源码 书籍目录如下: 1 EXT书中概述 2 EXT框架基础 3 表格空间 4 表单输入空间 5 树形结构 6 拖放 7 弹出窗口 8 布局 9 工具栏和菜单 10 数据存储和传输 11 使用工具 12 一个完整的EXT应用 13 ...

    ext-word文档

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

    Embedded-Linux-Kernel-Programming-源码.rar

    1. **嵌入式系统概述**:嵌入式系统是设计用于特定功能的计算机系统,它们通常集成在更大的设备中,如智能手机、汽车电子系统或工业控制器。嵌入式Linux结合了开源Linux操作系统的灵活性与嵌入式系统的高效特性。 2...

    .net EXT学习资料与源码

    .net EXT学习资料与源码 ext是一个强大的js类库,以前是基于YAHOO-UI,现在已经完全独立了,  主要包括data,widget,form,grid,dd,menu,其中最强大的应该算grid了,编程思想是基于面对对象编程(oop),扩展性相当的好.可以...

    Ext2.2 中文手册

    EXT 源码概述 - **源码结构**:Ext 框架的源码分为多个模块,每个模块负责特定的功能,例如 Core 模块包含了基础的 JavaScript 功能。 - **作用域管理**:JavaScript 中的作用域决定了变量的可见性。在 Ext 中,...

    Ext官方中文教程(可打包下载)

    Ext源码概述 Ext与RESTful Web Services 程序设计: 如何合理地规划一个应用程序 如何本地化ext的教程 xtype的含义 扩展Ext中的组件 扩展与插件之间的区别 扩展Ext的新手教程 Ext的类继承 从源码生成Ext 基础用法...

    ext学习文档

    - **EXT源码概述**: 对EXT的源代码进行了初步解析。 - **EXT程序规划入门**: 提供了关于如何规划和构建EXT应用程序的基本指导。 #### 3. Element:Ext的核心 Element是EXT框架的核心组成部分之一,它封装了DOM操作...

    EXT中文教程

    - **EXT源码概述** EXT的源码结构清晰,分为多个模块,如Adapters、Core等,每个模块负责特定的功能,便于理解和维护。 - **核心Core** Core包含了框架的基础功能,如DOM操作、事件处理等,是整个框架的基石。 ...

    ext4.2学习之路

    #### 一、Ext JS 4.2概述 Ext JS是一款强大的企业级富客户端Web应用程序开发框架,基于JavaScript和HTML5技术,用于构建高性能的桌面和移动Web应用程序。Ext JS 4.2版本在原有基础上进行了功能增强和性能优化,提供...

    Ext学习相关资料(包括示例及源码)

    1. **Ext JS框架概述** Ext JS 是由Sencha公司开发的一个开源JavaScript库,基于YUI库。它提供了大量的可复用的UI组件和数据绑定机制,支持Ajax交互,使得开发者能够构建出具有桌面应用般体验的Web应用。 2. **...

    快意编程EXT JS Web开发技术详解.part3

    《快意编程:Ext JS Web开发技术详解》首先对Ext JS进行了概述,然后通过一个简单的示例带领读者快速入门,在读者对Ext JS有了初步印象后,又重点介绍了JavaScript的面向对象技术、Ext JS API文档的使用方法、Ext JS...

    Ext 教程详解 适

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

Global site tag (gtag.js) - Google Analytics