我需要在網頁上顯示大約10.000個圓圈。每個圓都必須綁定到數據。我還需要我的圈子如下交互:與10.000個對象交互的高性能
- 變化的CSS,如果我鼠標移到它們(高亮例如)
- 訪問數據,如果我點擊它
我試過三種實現:
- 一個通過D3生成SVG
- 一個通過D3再次生成的div sorte的 「模仿」 圈子
- 一個通過Fabricjs要經過帆布
對於DIV的解決方案,它只是醜陋的我的圈子並不總是完美的圓形。 對於SVG和畫布,使用它有兩點緩慢。
如何在不減少顯示圓圈數量的情況下提高性能並保持好看?
我需要在網頁上顯示大約10.000個圓圈。每個圓都必須綁定到數據。我還需要我的圈子如下交互:與10.000個對象交互的高性能
我試過三種實現:
對於DIV的解決方案,它只是醜陋的我的圈子並不總是完美的圓形。 對於SVG和畫布,使用它有兩點緩慢。
如何在不減少顯示圓圈數量的情況下提高性能並保持好看?
什麼可能會減慢你的鼠標對象重疊的檢測,這是瀏覽器的一個非常普遍的功能,因此沒有特別優化。好消息是你可以自己輕鬆優化。考慮這種方法:
canvas
之上單獨執行div
,以便不需要重繪底層canvas
。
究竟是什麼人可以理解顯示10,000個物體的東西呢?你需要重新思考你的UX –
@RobertLongson:我對天體物理學數據做了dataviz。我需要顯示衛星拍攝的所有「照片」。我已經將相同座標的數據彙總在一起,但如果不放鬆精度,我就無法繼續前進。在評判我之前,請看看那裏:http://episteme.univ-nantes.fr/dev/skymap/0 – MrFlo
從你的文章中我收集到的div解決方案運行良好,這只是醜陋的。你有一個我們可以看看的演示,試圖讓它更漂亮嗎? ;) – DarthJDG