[翻译]Ext JS 教程-开始使用 ExtJS 4

本文档详细介绍了如何使用ExtJS4构建一个简单的Web应用程序,包括环境搭建、应用程序结构、动态加载、部署流程等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

入门

1. 需求

1.1 网页浏览器

ExtJS 4 支持所有主流的浏览器,从IE 6 到最新的谷歌Chrome。在开发期间,我们建议你使用下面这些浏览器,以获得更好的调试体验。

Ø Google Chrome 10+

Ø Apple Safari 5+

Ø Mozilla Firefox 4+ 带Firebug Web 开发插件

本教程假设你正在使用最新的谷歌 Chrome 浏览器。如果你还没有 Chrome,花点时间去下载它吧,然后去熟悉熟悉 Chrome 的开发者工具。

1.2 Web 服务器

尽管使用 ExtJS 4 并不一定需要一个本地的web 服务器,仍然强烈建议你在开发的时候能有一个,因为 XHR 在大多数浏览器上有针对本地 file:// 的cross origin 限制。如果你还没有本地的web 服务器,建议你下载并安装 Apache HTTP Server。

Ø 了解在 Windows 上面安装 Apache

Ø 了解在 Linux 上面安装 Apache

Ø Mac OS X 已经内置了apache,你可以在 System Preference > Sharing 下面的 Web Sharing 旁找到

一旦你安装好了 Apache ,你可以通过在浏览器地址栏输入 localhost 验证它是否在运行。你会看到一个表示 Apache HTTP 服务器已经成功安装并且正常运行的开始页面。

1.3 Ext JS 4 SDK

下载 Ext JS 4 SDK,把压缩包解压到一个在你的web 根路径下新建的extjs文件夹。如果你不知道web根目录在哪儿,查阅你web服务器的相关文档。Web 根路径的位置根据你操作系统的不同而有所不同,但是如果你使用的是 Apache,你一般会在:

Ø Windows - "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs"

Ø Linux - "/var/www/"

Ø Mac OS X - "/Library/WebServer/Documents/"

一旦你已经完成安装,将浏览器导航至 http://localhost/extjs/index.html 。如果一个 ExtJS 4 的欢迎页面出现了,代表你已经一切就绪了。

2. 应用程序结构

2.1 基本结构

如下所列的建议尽管不是强制的,但是可以作为最佳实践指南考虑,以保持你的应用的结构条理性、可扩展性和可维护性。下面是推荐的Ext JS 应用程序结构:

- appname

- app

    - namespace

        - Class1.js

        - Class2.js

        - ...

- extjs

- resources

    - css

    - images

    - ...

- app.js

- index.html

Ø Appname 是一个包含应用程序所有源文件的文件夹

Ø App 包含所有的类, 类的命名形式应该遵循类系统指南中列出的规则

Ø Extjs 包含 ExtJS 4 SDK 的文件

Ø Resources 包含为应用程序提供外观的 CSS 和图片文件,还有其他的静态文件(XML、JSON等等)

Ø Index.html 是 HTML 文档的入口点

Ø App.js 包含你所有的业务逻辑

现在不要为了创建所有上述的文件夹而担忧。当前让我们关注用最少量需求的代码去获得并运行一个 Ext JS 应用程序。 我们将会创建一个 “hello world” Ext JS 应用程序,称作 “Hello Ext”。首先,在你的web根路径下面创建下面这些文件和文件夹。

- helloext

- app.js

- index.html

然后解压 Ext JS 4 SDK 里的 exjst 到 helloext 目录中。

一个典型的ExtJS应用程序包含一个 HTML文档——index.html。 打开 index.html,插入下面的 html 代码。

<html>

<head>

  <title>Hello Ext</title>

  <link rel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css">

  <script type="text/javascript" src="extjs/ext-debug.js"></script>

  <script type="text/javascript" src="app.js"></script>

</head>

<body></body>

</html>

Ø extjs/resources/css/ext-all.css 包含整个框架需要的样式信息

Ø extjs/ext-debug.js 包含 ExtJS 4 核心类库的最小集合

Ø App.js 将包含你的应用代码

现在你已经准备好,可以写你的应用代码了。 打开 app.js ,插入下面的 Javascript 代码:

Ext.application({

name: 'HelloExt',

launch: function() {

Ext.create('Ext.container.Viewport', {

layout: 'fit',

items: [

{

title: 'Hello Ext',

html : 'Hello! Welcome to Ext JS.'

}

]

});

}

});

现在将你的浏览器导航到 http://localhost/helloext/index.html 。你会看到一个面板,面板上有一个包含文本 “Hello Ext”的标题条,面板的body 区域还有“welcome”信息显示。

2.2 动态加载

打开 Chrome 开发者工具,点击 Console 选项。现在刷新 Hello Ext 应用程序。你应该会看到控制台(console) 显示像下面这样一条警告信息:

clip_image002

ExtJS 4 带有一个在你的应用需要时动态加载 JavaScript 资源的系统。在我们的例子中, Ext.create 创建了一个 Ext.container.Viewport 实体。当 Ext.create 被调用的时候,加载器首先会检查 Ext.container.Viewport 是否已经被定义了。如果已经定义了,加载器会在初始化viewport 对象前尝试加载加载包含了定义 Ext.container.Viewport 的代码。 在我们的例子中 Viewport.js 文件获取加载成功了,但是加载器发现文件正在以一种 less-than optimal 方式被加载。 于是我们现在在一个 Ext.container.Viewport 的实体被需要时加载了 Viewport.js 文件, 代码的执行一直到文件已经被加载成功的时候才停止,造成一小段延时。 当我们对 多次调用 Ext.create时,延时的影响会累积,因为应用程序在请求下一个文件时,都会等待每一个文件加载完。

为了解决这个问题,我们可以调用 Ext.application 的一行代码。

Ext.application:

Ext.require('Ext.container.Viewport');

这样做将确保在应用程序运行之前包含定义 Ext.container.Viewport 的代码已经被加载进来了。 在你刷新页面时,你应该不会再看到 Ext.Loader 的警告信息了。

2.3 库文件包含方法

当你解压了你下载的 ExtJS 4 文件时,你将看到下面的这些文件:

1. ext-debug.js ——这个文件仅在开发期间使用。 它提供了启动和运行所需最小量的 ExtJS 核心类。任何附加的类应该向上面演示的那样作为单独的文件被动态加载。

2. ext.js ——跟ext-debug.js 是一样的,不过做了迷你化处理。它很重要,用来同你应用程序的 app-all.js 文件结合。(见 第3节)

3. ext-all-debug.js ——这个文件包含了真个 ExtJS 库。这对于缩短你的学习曲线很有帮助,然而实际的应用开发中 ext-debug.js 大多情况下是首选。

4. ext-all.js 这是一个迷你化了 ext-all.debug.js 可以用于生产环境,当大部分应用程序不需

要使用它包含的所有类时,不推荐用这个。取而代之的做法是为你的生产环境创建一个定制的构建,这在第3节描述到了。

3. 部署

新推出的 Sencha SDK 工具让任何 ExtJS 4 应用程序的部署比以前更容易了。这个工具允许你生成一份JSB 3(JSBuilder 文件格式)形式的JavaScript 依赖清单文件, 并且创建一个定制的构建包,里面只包含你的应用程序所需要的代码。

一旦你把SDK 工具安装好了,打开控制台窗口并切换到你应用程序所在的目录。

cd path/to/web/root/helloext

到此你仅仅需要运行一对简单的命令。第一行生成一个JSB3文件:

sencha create jsb -a index.html -p app.jsb3

对于基于一种动态服务器端语言——像 PHP、Ruby、ASP等等——构建的应用程序,你可以简单的用你应用程序的真实URL替换 index.html:

sencha create jsb -a http://localhost/helloext/index.html -p app.jsb3

这条命令会浏览你的index.html文件,寻在所有被应用实用到的框架和应用文件,然后创建一个叫做 app.jsb3的 JSB 文件。JSB3的生成给我们在构建之前变更 app.jsp3 的机会——这在当你需要复制定制的资源是可能有帮助,但在大多数情况下我们可以使用第二条命令执行构建:

sencha build -p app.jsb3 -d .

这条命令基于 JSB3 文件 创建了两个文件:

1. All-classes.js ——这个文件包含了你应用程序的所有类。它不是迷你化的,因而对你查找问题很有帮助。在我们的例子中这个文件内容是空的,因为我们的“Hello Ext”应用不包含任何类。

2. App-all.js ——这个文件是迷你化的,包含了应用程序的和所有运行时需要的ExtJS的类。它是生产环境用的 all-classes.js + app.js 迷你化。

一个Ext JS 应用程序将需要一个单独的index.html用于应用的生产环境版本。你可能希望在你的构建过程或者服务器端逻辑中决定这个东西,但是现在先只在 helloext文件夹里面创建一个称作 index-prod.html 的新文件:

<html>

<head>

<title>Hello Ext</title>

<link rel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css">

<script type="text/javascript" src="extjs/ext.js"></script>

<script type="text/javascript" src="app-all.js"></script>

</head>

<body></body>

</html>

现在ext-debug.js 已经被 ext.js 替换,app.js 已经被 app-all.js 替换。如果你将浏览器导航至 http://localhost/helloext/index-prod ,你应该会看到产品环境版本的“Hello Ext”应用程序。

4. 阅读更多

1. 类系统

2. MVC 应用程序架构

3. 布局和容器

4. 使用数据

转载于:https://my.oschina.net/xuleo/blog/134652

1、Ext类 ………………………………… 2 2、Array类 …………………………… 4 3、Number类 …………………………… 4 4、String类 …………………………… 4 5、Date类 ……………………………… 5 6、Function类 ………………………… 6 7、Ext.Element类 ………………………… 7 8、Ext.DomQuery类 ………………… 13 9、Ext.DomHelper类 …………………… 14 10、Ext.Template类 …………………… 14 11、Ext.EventManager类 ……………… 15 12、Ext.EventObject类 ………………… 15 13、Ext.CompositeElement类 ………… 16 14Ext.CompositeElementLite类 ……… 16 15、Ext.Fx类 …………………………… 16 16、Ext.KeyNav类 ……………………… 19 17、Ext.KeyMap类 …………………… 19 18、Ext.util.JSON类 ……………………… 20 19、Ext.util.Format类 ………………… 20 20、Ext.util.DelayedTask类 ……………… 20 21、Ext.util.TaskRunner类 …………… 21 22、Ext.util.TextMetrics类 …………… 21 23、Ext.XTemplate类 ………………… 21 24Ext.data.Connection类 ……………… 22 25、Ext.Ajax类 ………………………… 22 26、Ext.data.Record类 ………………… 23 27、Ext.data.DataProxy类 …………… 24 28、Ext.data.HttpProxy类 …………… 24 29、Ext.data.MemoryProxy类 ……… 25 30、Ext.data.ScriptTagProxy类 ………… 25 31、Ext.data.DataReader类 ……………26 32、Ext.data.ArrayReader类 …………… 26 33、Ext.data.JsonReader类 …………… 26 34Ext.data.XmlReader类 …………… 27 35、Ext.data.Store类 …………………… 28 36、Ext.data.GroupingStore类 ………… 32 37、Ext.data.SimpleStore类 ………… 34 38、Ext.data.Tree类 …………………… 34 39、Ext.data.Node类 ………………… 34 40、Ext.Action类 ……………………… 35 41、Ext.Button类 …………………… 36 42、Ext.SplitButton类 ……………… 38 43、Ext.CycleButton类 ……………… 39 44Ext.form.BasicForm类 …………… 40 45、Ext.form.Field类 …………………… 41 46、Ext.form.Checkbox类 …………… 42 47、Ext.form.Radio类 ………………… 43 48、Ext.form.HtmlEditor类 …………… 43 49、Ext.form.TextField类 …………… 44 50、Ext.form.NumberField类 ………… 44 51、Ext.form.TextArea类 …………… 45 52、Ext.form.TriggerField类 ……… 45 53、Ext.form.DateField类 ………… 45 54Ext.form.ComboBox类 ……………… 46 55、Ext.form.TimeField类 ………… 47 56、Ext.menu.Menu类 ………………… 50 57、Ext.menu.BaseItem类 …………… 50 58、Ext.menu.Adapter类 ……………… 51 59、Ext.menu.Item类 ………………… 51 60、Ext.menu.CheckItem类 …………… 51 61、Ext.menu.Separator类 ………… 52 62、Ext.menu.TextItem类 …………… 52 63、Ext.Toolbar类 …………………… 55 64Ext.Toolbar.Item类 ……………… 56 65、Ext.Toolbar.Separator类 ……… 56 66、Ext.Toolbar.Spacer类 …………… 56 67、Ext.Toolbar.TextItem类 ……… 56 68、Ext.Toolbar.Fill类 ……………… 56 69、Ext.grid.ColumnModel类 ……… 58 70、Ext.grid.PropertyColumnModel类 … 59 71、Ext.grid.GridView类 …………… 59 72、Ext.grid.GroupingView类 ………… 60 73、Ext.grid.EditorGridPanel类 ……… 62 74Ext.grid.PropertyGrid类 …………… 65
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值