我正在做一些小的性能测试来渲染简单的多线图。我将不得不将多个 twojs 实例呈现为图表。什么被认为是好的做法?
https://jsfiddle.net/76ekv53c/5/
const series = new Array(5000).fill(0).map((x,i) => [i, ~~(Math.random()*100)])
const _2 = new Two({ width: 500, height: 200, type : Two.Types.canvas }).appendTo(document.getElementById('chart'))
const circles = []
const lines = []
let zoomFactor = 0.01
_2.bind('update', () => {
zoomFactor=(Math.sin(+new Date()/1000)*10+10)
lines.forEach((line, index) => {
line.vertices[0].set(index*zoomFactor, Math.sin((index)/10)*100+100)
line.vertices[1].set((index-1)*zoomFactor, Math.sin((index-1)/10)*100+100)
})
circles.forEach((circle, index) => {
circle.translation.set(index*zoomFactor, Math.sin(index/10)*100+100)
})
}).play()
const init = (factor = 1) => {
series.forEach((point, index) => {
const x = point[0]
const y = point[1]
const circle = _2.makeCircle(x*factor, y, 2)
const line = _2.makeLine(x*factor, y, x+1*factor, series[index+1] ? series[index+1][1] : series[index][1])
lines.push(line)
circles.push(circle)
})
}
init()
有没有办法从中挤出更多的性能?第一次在这里使用two.js!我只需要更新每个点的位置。