[翻譯]Ext JS 教程-開始使用 ExtJS 4

入門

1. 需求

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. 應用程序結構

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. 使用數據

相關文章
相關標籤/搜索