plait icon indicating copy to clipboard operation
plait copied to clipboard

用SVG做白板性能会不会有问题?

Open aokaywe opened this issue 1 year ago • 2 comments

实测1500个脑图节点,目前需要8S左右。 @pubuzhixing8 @WBbug

aokaywe avatar Sep 13 '23 07:09 aokaywe

@aokaywe 我们目前测试的也是这个表现,而且因为我们的导图节点文字目前使用的是富文本编辑器组件(每一个节点都是一个独立的富文本编辑器),这个编辑器器组件测试发现稍微有点影响性能,这块还有一定的优化空间。

pubuzhixing8 avatar Sep 18 '23 01:09 pubuzhixing8

@pubuzhixing8 性能这块的方案可以交流下

  1. 基于svg,感觉很难提升,受限于dom效率,不知道能不能使用类似于虚拟滚动的机制,但是在脑图缩小的时候,dom节点依然很多;有没有啥思路可以提供?
  2. 基于原生canvas,有konva、pixijs之类的底层库,但测试下来,canvas的文字显示性能极低。研究下来,各大基于canvas脑图,只有幕布性能不错,5000个节点也不会卡顿,不知道采用了什么机制
  3. 基于WebAssembly,开源的解决方案有Skia + WebAssembly,国内的白板产品boardmix可能就是这种机制;国外figma也是基于wasm的

另外,富文本编辑器推荐tiptap,但也厚重,用在脑图中,可能得弄一个轻量的

aokaywe avatar Sep 19 '23 03:09 aokaywe