ExtJS 開發總結

1. ExtJS的定位是RIA,和Prototype、jQuery等類庫的定位不一樣。使用ExtJS作開發,就是意味着以客戶端開發爲主,否則就不叫RIA框架了,而Prototype、jQuery等只是輔助性的客戶端框架,和ExtJS不在同一條起跑先上。若是必定要和其它的框架作比較的話,應該和Isomorphic SmartClientBackbase Enterprise Ajax之類的框架作比較,固然,和他們相比,ExtJS仍是有很大的優點的。php

2. 使用ExtJS時須要解決如何服務端通訊的問題。因爲ExtJS只是一個客戶端的框架,和服務端技術沒有關係,也就沒有相應的服務端的適配層,所以客戶端若是要用ExtJS,則必須提供它須要的數據結構。ExtJS主要經過這幾種方式和服務端進行通訊:html

  • Ext.Ajax.request 作普通的異步請求,服務端能夠根據實際狀況返回JSON形式數據或者HTML片斷;
  • Ext.tree.TreeLoader 加載樹形結構,服務端必須返回JSON形式數據,並且要符合Ext.tree.TreeNode的配置要求,不然本身作轉換;
  • Ext.data.Store及其派生類 加載表格形式的數據,服務端能夠根據實際狀況返回JSON形式數據或者XML形式數據,若是沒有特殊要求,推薦返回JSON格式的數據;
  • Ext.Element.update 局部更新,這個方法最總仍是要調用Ext.Ajax.request方法,之因此把它單獨列出來,是由於這種方式比較容易被忽視,可是在某些狀況下仍是挺 有用的,好比調用Ext.Panel.body.update()對某個Ext.Panel的內容進行局部更新,若是使用這種方式,那麼服務端只能相應的 返回HTML片斷了;

3. 使用ExtJS時的注意事項。ExtJS和其它的輔助性類庫(Prototype、jQuery等)相比顯得很是龐大,讓不少不少初學者望而卻步。通過近一年的學和用,對於ExtJS的使用,我總結了一下幾個注意事項:瀏覽器

  • 儘可能使用ExtJS的方言。 ExtJS提供了不少有用的方法,解決客戶端JavaScript常見的開發任務,常見的有查詢HTMLDom,建立HTML元素,爲HTML元素註冊事件響應函數等,這些大能夠所有使用ExtJS提供的方法,使本身代碼構建與ExtJS之上,舉幾個例子:
    • 查詢ID爲container的DIV下全部的checkbox,可使用:Ext.fly(‘container’).select(‘input[type=checkbox]’);
    • 在ID爲container的DIV內建立一個按鈕,可使用:Ext.fly(‘container’).createChild({ tag: ‘input’, type: ‘button’});
    • 爲ID爲container的DIV的click事件註冊處理函數,使用:Ext.fly(‘container’).on(‘click’, handlerFn, scope);
  • ExtJS的自定義事件很好用,能夠實現一對多的通知,並且任何自定義事件均可以中途中止,只要有一個處理函數返回false。
  • Store合併成一個文件 用ExtJS顯示數據,天然就須要用到Ext.data.Store及其派生出來的類,能夠考慮全部的Store合併到一個文件,這樣對重用有很大的幫助。
  • 腳本文件管理 儘量的每一個模塊作成一個類,一個類一個文件,相似與Java或C# 的文件處理方法,每一個文件註明其做用,依賴的文件等,若是太多的話能夠考慮寫一個配置文件,經過讀配置文件來輸出腳本到客戶端。
  • 調試和部署分別加載Debug和Release版本的腳本 ExtJS附帶的例子中沒有使用完整Debug版本的例子,因此不少人找不到完整的Debug版本的引用順序,經過對Source文件夾下的ext.jsb文件進行分析,就能夠獲得正確的加載順序,以下:
    • Debug
      1. /ext-path/source/core/ext.js
      2. /ext-path/source/adapter/ext-base.js
      3. /ext-path/ext-all-debug.js
    • Release
      1. /ext-path/adapter/ext/ext-base.js
      2. /ext-path/ext-all.js
  • 對Script進行壓縮 對項目中有大量的JavaScript的話,對其進行壓縮是頗有必要的,這裏我推薦的是ExtJS的論壇提供的JS Builder,能夠經過配置文件來對Script和CSS進行壓縮,聽說ExtJS就是用這個工具進行壓縮的,不過有一個缺點,就是不支持UTF-8編碼。

 

4. ExtJS的優勢和缺點總結。通過近一年的嘗試,ExtJS的優缺點總結以下:緩存

  • 優勢
    • 一致的類庫 這點在1.1版本時還不是很完善,可是到了2.0之後,ExtJS內部通過了翻天覆地的變化,特別是UI組件,有統一的基類,給人的感受很像是一個運行在瀏覽器上的運行時框架,這一點只有在對ExtJS熟練了以後才能體會到。
    •  託管頁面呈現 ExtJS在發展到2.0以後,不只UI類庫一致了,並且渲染方式也是統一的,用官方的話說,是Managed Rendering,這一點使得UI的擴展也比較一致,有利於之後的維護與發展。
    • 相對豐富的文檔和示例 毫無疑問,剛剛接觸到ExtJS的人多數都是被它附帶的例子和開發文檔吸引過去的,它的文檔作的確實不錯。
    • 華麗而成熟的界面 ExtJS在2.0以後的界面真的是沒得說,不只華麗,並且相對很成熟。
  • 缺點
    • 沒有合適的開發利器 毫無疑問,一個好的開發工具能夠大大的提升編碼的速度,可是對於ExtJS,始終沒有一個完美的開發工具,能夠推薦的有Aptana StudioSpket IDE,和Spket 提供的提示文件,可是都是各有優缺點,都不完美,只能一邊看SDK一邊寫代碼。
    • 沒有界面設計工具 雖然有人提供了一個在線的界面設計工具,可是和Visual Studio提供的ASP.Net設計工具來講,真的能夠說是天壤之別。所以,只能一邊預覽,一邊寫代碼。
    • 文檔不全 雖然ExtJS提供的文檔很豐富,可是仍是跟不上源代碼的更新速度,因此,常常要經過看源代碼,調試才能真正解決問題。
    • 不能編譯 這一點能夠說是JavaScript的缺點(若是能編譯,就不叫JavaScript了),在實際的開發中,常常會敲錯一些代碼,好比大小寫錯誤等,不能經過編譯獲得反饋,只能在運行時排錯,致使開發的效率比較低下。

5. 使用ExtJS作應用的一些建議。多數人認爲ExtJS的腳本體積很大,不適合放到互聯網上,對於這一點,有以下建議:數據結構

  1. 部署到互聯網上的Web應用必定要加載Release版本的ExtJS
  2. 能夠考慮只加載必須的組件,build目錄下腳本文件都是壓縮過的,若是項目中用到的ExtJS的組件不是不少,能夠只加載用到的
  3. 考慮使用IIS的文件壓縮功能
  4. 使用Google的Gears,把全部的靜態文件作客戶端緩存
  5. 使用ADOBE的AIR,把腳本打包到客戶端運行

 轉載自:http://my.oschina.net/aiguozhe/blog/63005框架

相關文章
相關標籤/搜索