Ext源码概览

Ext4.0源码解读(分享一) 第一部分 核心/核心 源码:   core/src/Ext.js 首先L 1 - 14 ( 第 1到 第 14 行) ,你可以发现: EXT 基于 GPL 开源----除非你的东西也GPL开源, 否则必须出钱,才能使用 EXT 4。 作者把赚钱的目标用源码注释方式写清楚了。 接着  L 16 - 17  这2个是文档注释。 @class 表示 Ext 阅读详情

入门导向

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

揭示源代码

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

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

ext-core.js

 

代码
  1. /*  
  2.  * Ext JS Library 2  
  3.  * Copyright(c) 2006-2007, Ext JS, LLC.  
  4.  * licensing@extjs.com  
  5.  *   
  6.  * http://www.extjs.com/license  
  7.  */  
  8.     
  9. Ext.DomHelper=function(){var _1=null;var _2=/^(?:br|frame...   
  10.     
  11. Ext.Template=function(_1){if(_1 instanceof Array){_1...   
  12. ...  

 

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

ext-core-debug.js

代码
  1. /*  
  2.  * Ext JS Library 2  
  3.  * Copyright(c) 2006-2007, Ext JS, LLC.  
  4.  * licensing@extjs.com  
  5.  *   
  6.  * http://www.extjs.com/license  
  7.  */  
  8.     
  9. Ext.DomHelper = function(){   
  10.     var tempTableEl = null;   
  11.     var emptyTags = /^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i;   
  12.     var tableRe = /^table|tbody|tr|td$/i;   
  13. ...   

该调试版本可以在调试阶段方便地检查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

 

代码
  1. 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 目录下的各个源代码。

 
模块化编译ext2, ext3,ext4 文件系统 本文的目的就是将ext4文件系统编译成模块化,zheya 阅读详情

相关推荐

Ext4.0源码解读(分享二)

源码: core/src/Ext-more.js L 44 一来就 44 行? 我也没办法, 上面都是注释。 Ext中的注释是非常多的。然这些注释都是文档注释。关键的注释很少。 L 45 Ext.userAgent  这里使用了navigator.userAgent  说明, EXT 是基于 navigator.userAgent 判断浏览器。 L 46

extjs专栏 2110

ext2.h源码分析(一)

2021SC@SDUSC 在文件目录下有名为ext2.h的头文件,提供了许多该文件系统使用的数据类型和方法,所以先分析该文件以便了解整个文件系统的结构。 文件开始定义了与块的分配和查找有关的如下两个数据类型: typedef int ext2_grpblk_t; //记录块组的块偏移量 typedef unsigned long ext2_fsblk_t; //记录文件系统范围的块数 ...

weixin_45742312的博客 959

ext 中文源代码

ext 中文源代码(部分),这是一个小组翻译的,对源代码有中文注释,为此源码作出贡献的人表示感谢。

Ext 权限树

先上图片 我们要遍历的XML权限菜单如下(犹如内容很长,我这里只截取一部分) <MenuFunction> <menuCode>30</menuCode> <menuName>附加工作管理</menuName> <parentMenuCode>-1</parentMenuCod...

爱.NET 174

从智能家居到智慧城市:AI Agent Harness Engineering 作为统一控制中枢

我们可以把每个独立的智能系统看作一根带有独立功能的电线:智能家居Agent是负责家庭设备控制的电线,社区Agent是负责社区管理的电线,城市交通Agent是负责交通调度的电线,而AHE就是把这些分散的电线整合起来的「智能线束」:它不仅负责把不同接口、不同协议、不同层级的Agent连接起来,还提供统一的编排、调度、协同、观测能力,实现全局效用最大化的智能决策。

AI Agent Harness Engineering 202

DRM驱动代码分析:展频 跳频

DRM驱动代码分析:展频 跳频

yuuu_cheer的博客 2680

Ext 登录 代码

[code="java"] HR Manager Project Ext.onReady(function(){ Ext.get("logon").on("click", function(){ if(Ext.getDom("userName").value==""){ ...

xieyongqiu的专栏 204

ESP32脑机接口开发板:EEG信号采集与应用开发指南

脑机接口(BCI)技术通过采集脑电图(EEG)信号实现人机交互,其核心在于高精度生物电信号采集与实时处理。基于ESP32微控制器的开发平台结合专业级ADS1299 ADC芯片,可构建8通道EEG信号采集系统,支持250SPS采样率与可编程增益。这种嵌入式解决方案在科研教育领域具有显著优势,既能满足信号质量要求,又大幅降低开发门槛。典型应用包括实时脑电波可视化、注意力检测等BCI场景,通过Python生态工具链(如BrainFlow、LSL)可快速实现数据处理。开发时需注意电极阻抗控制(<10kΩ)和50/6

weixin_42518874的博客 344

signature=86d550b0f7b64fb514ac6b6bdcd647d4,交易 4d9188084b76ac9c62d837e8e44d8fb74224b192b81ce7ebffaaea...

0047304402203d0c204cb13eae20fb5303fee3c3bb5b429ba0f6371805ab73a6c4188307650f022045091f69c066c4f5b81a8381a5c1c1c5c332d0dd5ed5838bc80d9daa768048820147304402201e99ad888dd556a1984bbc516e5e86f33d102ff94130...

weixin_34406844的博客 4万+

Halcon —— 图像像素类型与转换

图像类型 就目前工业领域主流的图像处理工具halcon来讲,有以下几张图像类型:‘byte’, ‘complex’, ‘cyclic’, ‘direction’, ‘int1’, ‘int2’, ‘int4’, ‘int8’, ‘real’, ‘uint2’,具体含义如下图所示。相互间的转换可通过convert_image_type算子完成,但盲目转换会导致图像像素值异常。 ‘byte’ 每像素1字节,无符号 值范围: (0到255) ‘int1’ 每像素1字节,有符号 值范围: (-128到127) ‘

baidu_35536188的博客 1万+

从零构建HFSS连接器仿真模型:以SMP接口的精准复现为例

本文详细介绍了如何从零构建HFSS连接器仿真模型,以SMP接口的精准复现为例。通过获取官方模型、导入技巧、信号路径提取和介质结构复现等步骤,帮助工程师避免常见错误,提升高频电路仿真的准确性。文章特别强调了模型精度对仿真结果的影响,并提供了实用的调试和管理建议。

weixin_29041767的博客 429

Ext源码概览(Manual:Ext Source Overview)

 1 入门导向 2 揭示源代码 3 发布Ext源码时的一些细节 4 我应该从哪里开始? 5 适配器Adapters 6 核心Core 入门导向Ext的新手用户可以通过下列不同的途径获取学习资源:API文档、维基百科全书、日益丰富的教程、论坛、IRC频道等等(参阅Learn),关于这些各个方面在EXT官网上都有。但最重要的可用资源,可以说是Ext源代码本身。

kinglino520的专栏 599

10分钟快速搭建OpenClaw(基于Windows+飞书)

OpenClaw 是一款功能强大的 AI 智能体工具,能够帮助用户管理邮件、日历等日常事务。本文详细介绍了在 Windows11 系统上安装和配置 OpenClaw 的完整步骤,包括 Node.js 环境搭建、Git 安装、OpenClaw 部署以及飞书机器人创建与对接。通过简单的命令行操作和可视化界面配置,用户可以快速完成 AI 助手部署,实现智能办公自动化。文中还提供了飞书机器人权限设置等关键环节的图文指引,帮助用户轻松完成系统集成。

Hello, New World! 2927

Ext Source Overview (Chinese)

Personal tools Log in / create accountRegisterViews ManualDiscussionEditHistory M

boy00fly的专栏 714

rk3588平台USB 3.0 -OAK深度相机适配方法

摘要:本文记录了OAK摄像头设备的配置与测试流程。主要内容包括:1)添加USB设备udev规则;2)拉取相关依赖库;3)安装Python3和pip;4)安装项目依赖;5)安装FFmpeg工具;6)测试摄像头功能并转换视频格式;7)将测试视频拷贝到U盘查看。操作步骤涵盖了从设备驱动配置到功能测试的完整流程,提供了详细的命令行操作指引。通过该文档可快速完成OAK摄像头的环境搭建和基础功能验证。

yy_hear的博客 325

ImportError: DLL load failed while importing _pydantic_core: 找不到指定的程序对应解决方案

本文主要介绍了ImportError: DLL load failed while importing _pydantic_core: 找不到指定的程序对应解决方案,希望能对使用Python的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 19万+

ext4文件系统 文件/目录创建ext4_create/ext4_mkdir 函数源码解析

文件/目录创建函数ext4_create /ext4_mkdir,还有ext4_add_entry、__ext4_new_inode、find_group_orlov、find_group_other、ext4_getblk、ext4_mark_inode_dirty函数源码

dongzhiyan_hjp 2250

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【linux内核分析-存储】EXT4源码分析之“文件写入”原理(超长文+源码详解)

EXT4源码分析之“文件写入”原理,详细的介绍文件写入的核心流程,并对EXT4中关于文件写入的关键函数进行了分析。

ATFWUS的博客 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【linux内核分析-存储】EXT4源码分析之“创建文件”原理

EXT4源码分析之“文件创建”原理,详细的介绍文件创建的核心流程,并对EXT4中关于文件创建的关键函数进行了分析。

ATFWUS的博客 1万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

ext4文件系统之文件查找ext4_lookup函数源码解析

网上讲解ext4的文章挺多的,但是讲解ext4源码的文章很少。本文首先介绍ext4磁盘布局,然后讲解文件查找函数ext4_lookup源码

dongzhiyan_hjp 3462

ext4 extent详解2之内核源码详解

ext4 extent内核源码详解

dongzhiyan_hjp 3263

【linux内核分析-存储】EXT4源码分析之“文件删除”原理【七万字超长合并版】(源码+关键细节分析)

EXT4源码分析之“文件删除”原理【七万字超长合并版】(源码+关键细节分析),详细的跟踪了ext4文件删除的核心调用链,分析关键函数的细节,解答了开篇中提出的三个核心疑问。

ATFWUS的博客 1万+

【linux内核分析-存储】EXT4源码分析之“块分配算法分析”(1)主体流程

EXT4源码分析之“块分配算法分析”(1)主体流程,系列的第一篇文章,主要介绍块分配算法的主要流程以及一些细节点,如快速提交重放、简单分配器、配额文件、延迟分配、分配上下文。

ATFWUS的博客 1万+

ext4 delay allocation之ext4_writepages页回写源码剖析

ext4 write写入pagecache之后,再合适的时机会回写到磁盘,ext4文件系统中是通过ext4_writepages写入磁盘,本来将在源码角度分析该过程。建议先参照ext4 - delay allocation数据结构_nginux的博客-优快云博客看下涉及的重要数据结构。

GetnextWindow的专栏 1152
上一篇: java中四种操作xml方式的比较
下一篇: DWR.xml配置文件说明书
潇湘紫琅
博客等级 码龄24年 6粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值