我正要爲前端編寫使用ExtJS 3+的相對較小的數據錄入應用程序,使用ExtJS 3+時應該避免哪些缺陷?浮現在腦海我應該避免什麼ExtJS 3陷阱?
一個缺陷是沒有真正理解 的JavaScript(e.g.closures)
試圖在客戶端使用MVC模式。
我正要爲前端編寫使用ExtJS 3+的相對較小的數據錄入應用程序,使用ExtJS 3+時應該避免哪些缺陷?浮現在腦海我應該避免什麼ExtJS 3陷阱?
一個缺陷是沒有真正理解 的JavaScript(e.g.closures)
試圖在客戶端使用MVC模式。
留意在對象(JSON)定義中執行事情。
function MyPanel() {
}
function createParam() {
return {param: 'value'};
}
Ext.extend(MyPanel, ext.Panel, {
someParam = createParam();
});
在上面的例子加載了JavaScript內Ext.Extend
的東西,會得到執行一次。這意味着MyPanel的所有實例將共享someParam的同一個實例。在這種情況下這樣的初始化需要在構造函數中去:
function MyPanel() {
this.someParam = createParam();
}
選擇您的設計刻意:保持Ext JS的UI(前端)和Web服務(後端)之間的明確分離。 不要使用後端腳本語言來呈現您的JavaScript - 純粹在* .js文件中編寫Ext JS代碼,並根據需要與RESTful JSON Web服務通信。
這是黃金。我現在正忙於使用一個遺留代碼庫,必須從ColdExt轉移到原始的Ext,然後從Ext 3轉移到Ext 4.粗糙的東西,如果JS已經完成了如果您願意,並且不需要使用服務器端預處理,則可以在「公平競爭環境」中創建。 – 2011-05-06 23:21:41
使用適當的命名空間,所以你不污染全局命名空間,Ext.ns()是你的朋友在這裏:
Ext.ns("AlexanderN.Application");
AlexanderN.Application.MainWindow = Ext.extend(Ext.Window,{
...
});
等
社區維基似乎是適當這裏。 – bmargulies 2010-01-29 02:55:28
不理解JS會是任何基於JS框架的陷阱,我想...... – 2010-01-29 04:21:12