2011-03-30 19 views
0

開發了一些JavaScript類和腳本後,我發現jquery選擇器有一個很大的速度問題。我的應用程序實際上是設計用於使用javascript編寫的組件。 問題是 - 我想在字符串緩衝區到達客戶端瀏覽器之前有任何東西。也許它不會很複雜,但我使用一些jQuery選擇器來操作html內的組件。有沒有解決方案使用$('...')處理字符串? THX正則表達式和使用緩衝區而不是jQuery和dom選擇器

回答

1

也許是最好的操作在客戶端HTML方式是(通過其innerHTML屬性比如一個div),把它放在一個元素中,並使用DOM方法(的getElementById,和的getElementsByTagName getElementsByClassName方法通常就足夠了)。瀏覽器的HTML解析器將解析它,並將其轉換爲比您可以解析它的速度更快的DOM片段,並且您只需執行一次即可。只要不將附加片段附加到文檔中,它就不會被看到。

由於您似乎將HTML用作數據傳輸機制,您是否考慮過XML?您可以創建一個XML文檔並使用非常快速的XPath。或者你可以使用JSON,這實際上意味着使用本地對象來保存數據而不是文檔,但是獲取數據需要手動遍歷,這可能比DOM或XPath方法慢。

此外,不是構建HTML字符串,而是將其作爲某個元素的innerHTML插入,您最好使用DOM方法構建要插入的片段。這樣,您不必擔心生成有效的HTML,您只需從數據文檔片段中克隆元素並根據需要修改其屬性,然後將其插入到文檔中。