2012-06-09 56 views
2

我有一個包含無數千個元素的頁面。如果我將ID的元素數量保持爲最小值,或者它沒有什麼區別,瀏覽器是否可以更高效地工作(例如,getElementById)?如果元素沒有ID,DOM搜索會更快嗎?

謝謝。

+0

你爲什麼不試試看?編寫一段測試代碼,生成一個包含大量元素的頁面不應該很難。 –

+0

@ 500-InternalServerError簡短的回答可能是因爲我不是1983年以來的「專業軟件傢伙」:)但這是個好主意。 – Nick

回答

1

通常,DOM被加載到專門的樹狀數據結構中,並且樹被設計用於快速查找。所以一旦頁面在內存中,所有的搜索將快速發展。如果文件較小,加載/解析速度會更快,即沒有ID =少於字符=少於 字節。但是一旦它全部加載到內存中,應該沒什麼關係。

這也取決於瀏覽器的JavaScript引擎爲getElementById()方法實現的算法種類。我確定Chrome與IE或FF有所不同,反之亦然。我不擔心這部分,因爲你無法控制每個供應商如何實現他們的瀏覽器。

重點是,儘量減小文件大小。贊成較短的節點名稱和ID,因爲在解析/搜索過程的某個步驟中,字符串匹配畢竟是發生的。

+0

感謝您的幫助:) – Nick

+1

對於WebCore,至少,性能的關鍵是確保每個id只出現一次(當然,其他任何東西都是無效的html ...但這並不能阻止很多人)。如果你這樣做,按ID查找是O(1)。 –

相關問題