2010-01-29 52 views
2

我正要爲前端編寫使用ExtJS 3+的相對較小的數據錄入應用程序,使用ExtJS 3+時應該避免哪些缺陷?浮現在腦海我應該避免什麼ExtJS 3陷阱?

  • 一個缺陷是沒有真正理解 的JavaScript(e.g.closures)

  • 試圖在客戶端使用MVC模式。

+0

社區維基似乎是適當這裏。 – bmargulies 2010-01-29 02:55:28

+0

不理解JS會是任何基於JS框架的陷阱,我想...... – 2010-01-29 04:21:12

回答

1

留意在對象(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(); 
} 
2

選擇您的設計刻意:保持Ext JS的UI(前端)和Web服務(後端)之間的明確分離。 不要使用後端腳本語言來呈現您的JavaScript - 純粹在* .js文件中編寫Ext JS代碼,並根據需要與RESTful JSON Web服務通信。

+0

這是黃金。我現在正忙於使用一個遺留代碼庫,必須從ColdExt轉移到原始的Ext,然後從Ext 3轉移到Ext 4.粗糙的東西,如果JS已經完成了如果您願意,並且不需要使用服務器端預處理,則可以在「公平競爭環境」中創建。 – 2011-05-06 23:21:41

1

使用適當的命名空間,所以你不污染全局命名空間,Ext.ns()是你的朋友在這裏:

Ext.ns("AlexanderN.Application"); 

AlexanderN.Application.MainWindow = Ext.extend(Ext.Window,{ 
    ... 
});