Javascript KonvaJS的性能问题

Javascript KonvaJS的性能问题,javascript,canvas,kineticjs,konvajs,Javascript,Canvas,Kineticjs,Konvajs,我有一个项目以一种特殊的方式使用KonvaJS(我最近从KineticJS移植了它)。我基本上用它来显示建筑物在等轴测视图中的三维表示,如您所见 起初一切都很好,但随着建筑物尺寸的减小,性能开始受到影响,因为我必须表示建筑物的照明,每个灯具有3个多边形。我只使用一个层和组,舞台是可拖动的,每个灯具都是可选择的,所以我使用鼠标事件 我面临的主要问题是在拖动以及指向和缩放时重新绘制舞台。例如,我有一座大建筑,有将近2000个灯具,不可能使用它 这是我的节点列表的简化版本 舞台 层 沃尔西索(集

我有一个项目以一种特殊的方式使用KonvaJS(我最近从KineticJS移植了它)。我基本上用它来显示建筑物在等轴测视图中的三维表示,如您所见

起初一切都很好,但随着建筑物尺寸的减小,性能开始受到影响,因为我必须表示建筑物的照明,每个灯具有3个多边形。我只使用一个层和组,舞台是可拖动的,每个灯具都是可选择的,所以我使用鼠标事件

我面临的主要问题是在拖动以及指向和缩放时重新绘制舞台。例如,我有一座大建筑,有将近2000个灯具,不可能使用它

这是我的节点列表的简化版本

  • 舞台
      • 沃尔西索(集团)
        • nx多边形
      • floorISO(集团)
        • nx多边形
      • Luminaireso(集团)
        • 单个灯具(组)
          • 3 x多边形
        • 单个灯具(组)

我应该使用不同的图层吗?会更好吗?有什么我遗漏的吗?我开始觉得我应该使用3D框架。

好消息/坏消息:KonvaJS是在画布上创建交互式多边形的绝佳框架,但2000个“智能”多边形太多了。相反,在原生html5画布上绘制多边形,并使用数学命中测试进行拖动和选择。拖动和选择过程应该是非常灵敏的,因为您的大部分灯具都在几个层次组中。您是否尝试过这里的所有提示:?缓存是最好的方法之一。我已经尝试了所有方法。例如,缓存需要花费太多的时间来转换为图像,然后再还原。好消息/坏消息:KonvaJS是一个在画布上创建交互式多边形的好框架,但是2000个“智能”多边形太多了。相反,在原生html5画布上绘制多边形,并使用数学命中测试进行拖动和选择。拖动和选择过程应该是非常灵敏的,因为您的大部分灯具都在几个层次组中。您是否尝试过这里的所有提示:?缓存是最好的方法之一。我已经尝试了所有方法。例如,缓存需要花费太多时间才能转换为图像,然后再还原。