我目前有一個帶有一些Highcharts圖形的頁面,大約22個,並且它們受用戶可選擇的過濾器限制。每個過濾器交互都會刪除當前系列並添加新系列。根據需要更新許多Highcharts實例的最佳性能
我開始用兩種方法,第一個在具有循環通過所有保存的實例對象去了,除去各系列組成,
while currentChart.series.length > 0
currentChart.series[currentChart.series.length - 1].remove()
,然後陸續循環,通過陣列去搜索過濾器的數據和
currentChart.addSeries
name: operatorName
data: data
type: options.chartType
但這種實現結果相當沉重。
然後,我實現了一個超時讓插件呼吸一點,不要堆疊太多,通過設置每個循環之間1ms的時間間隔,我獲得了更好的性能,並且可以看到動畫,但它使它有點呆滯。設置更高的超時時間會導致頁面難以瀏覽,並且過濾器更改會疊加,因爲整個圖形更新需要很長時間。
在這種情況下,顯而易見的解決方案是比較efective。我想我必須不用動畫來提供最好的用戶體驗。 –
哇我沒有想到動畫部分會導致我的圖表不顯示,謝謝 – tinybyte