公司项目需要用到绘图框架,绘图部分以前是另一位同事负责,用的是 jsPlumb 框架。由于人员流动,后来这部分我接手了。项目绘图业务需求变得越来越复杂,jsPlumb 已经满足不了我们项目,于是我将目光投到了其他绘图框架。本文主要说说我在使用 jsPlumb 遇到的问题,以及我为什么选择 mxGraph。
jsPlumb
jsPlumb 有社区版跟收费版,我们使用的是社区版,下面提到的问题在收费版不一定存在。
- 不稳定
- 没有内置导航器(收费版是有这个功能的)
- 没有智能布局功能
- 没有做图层管理
- 没有集成截图功能
- 画布没有边界自动扩充功能
-
不稳定
主要体现在两点
- 还原图形偶尔会报一些莫名其秒的错误,还原失败
- 连接线条偶尔会发生线条位置错乱的情况
这可能是由于我使用 jsPlumb 不当引起的,又或者是框架本身存在问题,到最后都无法定位问题所在。但确实我在网上也看到有同学遇到过相似不稳定的情况。
-
没有内置导航器
导航器为分两个功能:第一个是放大、缩小,第二是可拖拽改变视口的 minimap。对于放大、缩小这个功能,我们用 css scale 来对整个画布进行缩放。但这个方法的缺点很快就暴露了,缩放后节点位置会发生改变;至于 minimap 要实现的话无异于重复造轮子,团队资源有限,这个功能当时搁置了。
-
智能布局
产品有一个需求是将用户 Excel 表中的数据用图形的方式展示,这就需要智能布局功能&#x