我正在處理這個項目,我有一個元素列表並將它們轉換爲一個「圖形」(不是一個真正的圖形,但可以稱它爲僞造的圖形)。我有我的數據集,我在數據上運行for
循環,然後爲每個數據創建一個li
元素,創建父級ul
,追加li
,然後將父級附加到另一個DOM元素(我們稱之爲祖父母)已經在頁面上。之後,我必須根據用戶交互對該列表進行後續更新。
此外,這一切都在使用jQuery的上下文中。現在更快地操作現有的HTML或刪除HTML,然後重新創建它?
,我的問題是 - 它速度更快,在每個後續調用創建的元素一次,然後更新所產生的HTML或者是更快地只是重建的每個元素,empty()
祖父元素(這將擺脫父ul
的),然後重新安裝新創建的ul
(我現在正在這樣做)?
請記住,當我重新創建li
s時,它們根本不在DOM中,因此在重新創建它們時沒有重繪/重新焊接。重新繪製只發生在我重新使用新創建的ul
時。
我正在和一位同事說話,他說最好在創建HTML元素後更新它們,而不是每次都重新創建它們。我正在考慮走這條路線,但後來我認爲更新現有的li
s實際上會導致對50個元素進行重繪,而對empty()
重新創建新創建的ul
進行重繪。
想法?
@dtan:是的。對於你的問題沒有明顯的答案,因爲它取決於你擁有的數據的數量和結構,甚至取決於其操作的通常模式。你的同事說不同的做法會更好。但你這樣做不好嗎?有可能這兩種技術都可以正常工作,如果需要1或5甚至50毫秒,這並不重要。如果它並不重要,那麼請考慮使用您將來最容易維護的方法。首先優化可維護性是我的建議。 – rsp 2011-03-05 17:14:54