2011-06-26 29 views

回答

6

完全取決於你的需求和喜好。如果您有設計師而不是程序員需要添加Dojo小部件,那麼他們最好使用聲明性標記。但是,如果您堅持HTML標記通過w3c驗證,則需要改爲使用編程方法。

我更喜歡的編程方法,因爲它可以讓我來包裝整個表單作爲一個JavaScript對象,並創建方法實例化和驗證其部件。評論後附錄:我通常會創建一個javascript對象與它的形式輸入和道場/的dijit部件作爲其屬性,所以我可以把它們稱爲this.startDateTextBox, this.titleInlineEditor等予處理在javascript對象構造函數道場小部件的實例。

如果您使用多個類似的小部件,如果您聲明保存其初始化設置的對象並以編程方式加載它們,而不是以聲明方式爲每個標記聲明所有共享屬性,則可以節省打字錯誤。我喜歡編程實例化的另一個原因是,我可以改變根據不同的條件實際上比我不得不這樣做的服務器端更改的標記更容易啓動一個小窗口前的實例參數。

+0

這是什麼意思?「我更喜歡編程方法,因爲它允許我將整個表單封裝爲一個JavaScript對象並創建方法來實例化和驗證其窗口小部件。」 – hamn

+0

參見上面的說明。 –

6

由於1.6版本,支持道場HTML5數據屬性,因此所得到的HTML將是有效的。儘管性能受損,但聲明式方法允許一目瞭然地查看UI的結構。

我複製他們在announcement of the HTML5 data attribute-support提供風格之間的比較:

利用新的HTML5,有效的自定義屬性,即使仍存在利弊,HTML內聲明的小部件,而不是用JavaScript。從HTML內部聲明JavaScript組件引入了語義雜質,因爲HTML不再是純語義標記,而是包含與特定視覺組件的緊密耦合。聲明式方法還會導致額外的CPU週期,因爲dojo.parse()必須遍歷DOM樹以使用Dojo自定義屬性查找元素。編程實例化避免了不必要的循環,並保留了HTML的語義純度。然而,基於標記的窗口小部件聲明仍然具有強大的優勢,允許我們在一個地方定義和創建一個窗口小部件,以最小的努力促進快速應用程序開發。

相關問題