今天,有人請教我處理辦法,問題是:
一個Grid,選擇某條記錄後,單擊編輯後,彈出編輯視窗帶編輯表單),編輯完成後單擊儲存按鈕儲存表單,並關閉視窗,重新整理Grid。
這,本來是很簡單的,但囿於開發人員對Ext JS的理解不到位,搞得相當的複雜了。
主要複雜的地方在以下幾點:
要這樣實現,也不是不可以,在最後的提交頁面,調用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代碼,那就要考慮為什麼要用、是否有替代辦法、怎麼用這樣問題。
以上純個人觀點,可能還有沒考慮到的地方,忘大家斧正。