2012-10-10 13 views
0

我正在爲javascript中的軟件產品開發特殊的網格解決方案。數據通過服務器端的PHP腳本收集,並通過JSON數組推送到JavaScript。在我的腳本中,我必須解析這個數組並渲染網格行。這是我的問題。如果我收到例如4000行,JavaScript是呈現這非常快,但我認爲瓶頸是瀏覽器...JavaScript中的大量數據呈現性能

我的問題是,是否有可能只渲染可見部分?我需要滾動到其他信息,但瀏覽器不需要呈現它,如果它不可見。是否有可能渲染視口之外的東西?

我需要設置寬度和位置,這是唯一可能的,如果我將新元素添加到視口,這是非常緩慢的數據龐大的羣衆......我怎麼能解決這個問題?

回答

0

DOM更新是鏈中最慢的部分。如果可以,將結果處理到內存中,並一次性將其插入到DOM中。

+0

這是一個想法,但這只是一個更快一點。如果我在內存中計算5000行並添加一次,則需要插入3秒。太慢...我想我會實施像slickgrid中的部分渲染。只渲染視口中可用的行。 – swalter88

1

這裏的解決方案可能是在客戶端分頁數據。這樣,你可以用JS排序你的對象數組,並且一次只插入一部分數據到DOM中。

客戶端分頁庫選項已被討論here

+0

分頁是沒有選擇的,因爲數據應該粘在一起。它必須是一個大網格。 – swalter88