我通過AJAX調用從服務器獲取胖JSON數組,然後處理它並使用Javascript呈現HTML。我想要的是儘可能快地做到這一點。使用Javascript呈現HTML的策略
Chrome在我的測試中領先於FF,但它仍然需要5-8秒才能讓瀏覽器呈現~300條記錄。
我認爲延遲加載比如Google Reader中實現的延遲加載,但這違背了我的其他用例,例如能夠獲得即時搜索結果(在客戶端對我們獲取的所有記錄進行簡單搜索JSON數組)和多個過濾器。
我注意到的一件事是FF和Chrome都不會渲染任何東西,直到它們遍歷JSON數組中的所有項目,即使我在每個循環後都明確地將新創建的元素插入到DOM中(只要我有HTML)。我想達到的就是這樣:強制瀏覽器儘快呈現。
我試着推遲調用(數組中的每個項目都會被延遲函數處理),但是在那裏遇到了額外的問題,因爲看起來執行的順序不再保證了(一些項目進一步向下在之前的其他項目之前處理)。
我在這裏尋找任何提示和技巧。
渲染300+ DOM節點是要花費時間。我建議你檢查一下dojo網格(http:// dojotoolkit。org)它實現了惰性渲染,但您仍然可以保留客戶端上的所有數據。 – Maz 2010-06-29 13:50:44
這可能是一個好主意*不*分別將每個元素插入到DOM中。構建一個容器元素並將其保留在DOM之外,直到你填充完畢。 (300條記錄對我來說看起來並不是那麼重要,你應該能夠讓它運行得比5到8秒快) – Pointy 2010-06-29 13:55:47