2013-10-18 64 views

回答

6

差異

那麼,這兩種方式之間有一定的差異。在聲明性方式中,所有配置都基於HTML屬性,如dojo-data-props,但也包含一些其他屬性,如值,標題等。所以你創建的DOM節點實際上是作爲某種佔位符的。

當您通過編寫JavaScript代碼創建小部件時,您將不得不提供您將附加它的DOM節點,但最大的區別是它不會從該DOM節點複製HTML屬性。此處的DOM節點僅用作容器,而不是佔位符。


首選

沒有解決方案,主要是首選,它通常取決於應用程序的需求,你認爲什麼是發展的最徹底的方法。

我個人喜歡聲明性標記,因爲最終它是用戶界面的一部分。但是,你可以儘可能地去。我已經看到人們以聲明的方式創建商店和小部件事件處理程序,但我個人更喜歡用JavaScript編寫它們,因爲它們不是用戶界面的一部分。

還有其他原因可能會改變您創建窗口小部件的方式。例如,聲明性標記的最大缺點之一是您需要解析頁面(例如使用parseOnLoad)。這通常比以編程方式創建小部件要慢。你可以通過只解析某些DOM節點來改進它,但是你必須編寫額外的代碼(並且它不會更快)。

只是一個小紙條;這並不意味着聲明方式很慢。這只是一個額外的操作,應該執行,因此,它有點慢,但最終用戶甚至不會看到差異。

然而,聲明性方式的一個優點是,加載頁面時,最終用戶能夠看到佔位符。如果您選擇了正確的佔位符(例如,爲dijit/form/FilteringSelectdijit/form/ComboBox),最終用戶至少會看到一些信息。如果以編程方式創建所有內容,最終用戶將看到一個空白頁面,直到執行JavaScript代碼。

所以如果性能是要求之一,那麼你可以選擇以編程方式創建它們。如果您希望在業務邏輯中分離表示層的代碼分離,那麼我會建議使用聲明性方式。

但最終,兩種解決方案都很好。

相關問題