1.1 网页浏览器javascript
ExtJS 4 支持全部主流的浏览器,从IE 6 到最新的谷歌Chrome。在开发期间,咱们建议你使用下面这些浏览器,以得到更好的调试体验。css
Ø Google Chrome 10+html
Ø Apple Safari 5+java
Ø Mozilla Firefox 4+ 带Firebug Web 开发插件web
本教程假设你正在使用最新的谷歌 Chrome 浏览器。若是你尚未 Chrome,花点时间去下载它吧,而后去熟悉熟悉 Chrome 的开发者工具。apache
1.2 Web 服务器浏览器
尽管使用 ExtJS 4 并不必定须要一个本地的web 服务器,仍然强烈建议你在开发的时候能有一个,由于 XHR 在大多数浏览器上有针对本地 file:// 的cross origin 限制。若是你尚未本地的web 服务器,建议你下载并安装 Apache HTTP Server。服务器
Ø 了解在 Windows 上面安装 Apache架构
Ø 了解在 Linux 上面安装 Apacheapp
Ø 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.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) 显示像下面这样一条警告信息:
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节描述到了。
新推出的 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”应用程序。
1. 类系统
2. MVC 应用程序架构
3. 布局和容器
4. 使用数据