2012-05-24 15 views
1

在Seaside中,在所有那些renderContentOn:方法中,我可以使用HTML畫布對象來組裝我的DOM樹。不要寫我自己的HTML的任何理由?

我正在爲我的組件編寫一堆幫助程序,因爲我使用Twitter Bootstrap進行樣式設計,並且不想一直寫所有樣板代碼(<div> s en mas)。

對於這個被建立,我最簡單的方法是簡單的方式(我想避免這些助手使用with: aBlock)寫出來的HTML爲包裝的DIV像這樣:

html html: '<div class="control-group">'. 

有我有什麼理由不這樣做?有什麼缺點?

回答

6

有使用的HTML畫布的各種優點:

  • 的HTML畫布確保有效的標籤,一個有效的標籤結構,所有標籤都已正確關閉(在編譯時),並且該內容已正確轉義。
  • HTML畫布確保有效屬性,所有屬性都已正確關閉,並且內容已正確轉義。
  • 由於上述兩個HTML畫布自動避免了跨站點腳本(XSS)漏洞的可能性。
  • HTML畫布通過啓用標記(簡單函數調用),演示者(對象中的renderOn:)和組件(組件renderContentOn:))來實現更好的可重用性。
  • HTML畫布避免了生成不必要的空格。
  • 使用HTML畫布可以使用Smalltalk IDE在HTML代碼中提供的標準工具:發件人,實現者,重構引擎(提取到方法,提取到組件,內聯方法,自動重寫,...)等

我同意在一些罕見的情況下,它不值得使用HTML canvas:例如,當來自外部源的大量靜態垃圾需要嵌入到頁面中時。

+0

很好的答案。非常感謝你。 – Franz

+1

雖然我不能同意空白的東西,但我絕對不希望使用我的瀏覽器的開發工具來閱讀HTML源代碼。 – Franz

+0

我的目標是與我的問題 - 雖然 - 也許你可以幫助我與實際問題:http://stackoverflow.com/questions/10746673/write-helpers-for-wrapping-html-elements – Franz

0

改寫Lukas的一個論點:它基本上不是DRY。如果您僅使用一次,則沒有問題。如果您不得不多次使用這個畫布,畫布允許您使用smalltalk爲您提供的所有乾淨的重用功能。

相關問題