今天,有人請教我處理辦法,問題是:
一個Grid,選擇某條記錄后,單擊編輯后,彈出編輯窗口(帶編輯表單),編輯完成后單擊保存按鈕保存表單,并關閉窗口,刷新Grid。
這,本來是很簡單的,但囿于開發人員對Ext JS的理解不到位,搞得相當的復雜了。
主要復雜的地方在以下幾點:
- 為了實現編輯表單的可重用,把表單做成了頁面,然后在Window中套IFRAME打開頁面。
- 表單的提交不是用Ajax提交,而是使用習慣的頁面跳轉方式提交,于是,一切都復雜起來了。
要這樣實現,也不是不可以,在最后的提交頁面,調用parent對象操作父頁面的對象關閉窗口并刷新Grid。不過,這樣實在太復雜了。
這里存在的問題是對Ext JS的開發理解不到位,還是根據老的開發方式去來寫Ext JS的應用程序,因而本來簡單的東西一下子就復雜化了,這也是很多初學者經常犯的錯誤。
要很好的使用Ext JS進行開發,要牢記以下幾點:
- Ext JS的數據交互,基本上是以Ajax為工具,以JSON或XML格式數據進行交互,這個過程,不需要任何的頁面跳轉來實行,數據的處理都以一種很標準化的數據格式進行處理,如錯誤處理、成功保存等等信息,都可通過JSON或XML格式的數據來告訴客戶端,讓客戶端去進行處理。
- 使用Ext JS(尤其是4)編寫自己的擴展,實現組件的重用,非常的方便,不需要把重用部分做成一個頁面那么麻煩。
- 使用Ext JS 4可以很容易實現單頁面的應用程序,也就是只需要一個頁面就行了,客戶端與服務器端的數據交互都是遵循第一點來處理的。當然,擔心性能問題的,也會以IFRAME形式來實現多頁面的應用程序,但是,必須明白的是,這也是以單頁面為基礎的,意思就是,一個IFRAME頁面的流程,基本就是一個單頁面的應用程序的流程,不需要類似習慣的Web開發方式那樣進行多個頁面的控制。理解這點很重要,不然,還真不如不用Ext JS,直接使用習慣的Web開發方式來開發。
- Ext JS在客戶端也是數據與UI分離的,千萬別在UI中找數據。
- 使用Ext JS,是基于組件形式來組織UI的,而不是以HTML代碼來組織UI的,盡管最終生成的都是HTML代碼。一般情況下,是不需要直接編寫HTML代碼就能實現應用程序的,如果確實需要使用使用HTML代碼,那就要考慮為什么要用、是否有替代辦法、怎么用這樣問題。
以上純個人觀點,可能還有沒考慮到的地方,忘大家斧正。
- 前言
- extjs 4 tree 的text不顯示
- 窗口顯示時讓字段獲得焦點
- 如何編寫一個使用Store更新復選框的CheckboxGroup的插件
- 如何了解事件中回調函數的參數
- 很多人需要的,帶時間的日期選擇器
- 一個網上找到的,在Grid中嵌套Grid的示例:Nested Grids Example
- 修改Ext.ux.GroupTabPanel讓它支持延遲渲染
- 初學者比較容易犯的布局錯誤(手風琴布局)
- Ext JS添加子組件的誤區
- 使用Ext JS,不要使用頁面做組件重用,盡量不要做頁面跳轉
- 【翻譯】十大要避免的Ext JS開發方法
- 一個不錯的擴展:Ext.ux.container.ButtonSegment
- 在VS2012中實現Ext JS的智能提示太簡單了
- 為什么要使用“var me=this”這樣的寫法
- 一個很不錯的支持Ext JS 4的上傳按鈕
- 【翻譯】熱門支持小提示:2013年12月
- 【翻譯】在Ext JS應用程序中使用自定義圖標
- 演練Ext JS 4.2自定義主題
- 【翻譯】培訓提示:解決常見編碼問題的簡單技巧
- 【翻譯】從Store生成Checkbox Group
- 【翻譯】將Ext JS Grid轉換為Excel表格
- 【翻譯】Ext JS 5:為不同設備設置不同的主題