cytoscape.js网站上有一条说明:
“请注意,默认情况下集合是不可移植的,这意味着集合中的元素集不能更改.API在必要时返回具有不同元素的新集合,而不是改变现有集合。这允许开发人员安全地对集合使用集合论操作,在功能上使用集合等等。“
这是否意味着它不适合用于创建在线“网络编辑器”,即。用户可以在哪里进行交互以向现有图表添加和删除节点和边缘?
如果我理解上面的注释,则意味着添加新节点意味着从头开始重构整个图形(但是使用新节点),然后可能执行完整的重绘。这是对的吗?
答案 0 :(得分:1)
集合是一组元素;该集仅指向所有单个元素。你可以把它想象成一个元素数组:数组只保存元素。不同的数组/集可以具有不同的,相似的,重叠的元素等。
Cytoscape.js非常适合您提及的目的。已有项目拥有实时协作编辑器(类似于谷歌文档,在线办公室等,但用于图表)。例如,我创建的一个简单的代号为"Factoid"用于生物过程。虽然我真的认为它应该有一个更好,更准确的名称 - 你仍然可以通过代码查看Cytoscape.js的实时协作示例。因为您可以轻松地监听事件,所以在服务器和客户端之间来回发送差异(甚至只是事件)相对简单。
添加元素很便宜:它只添加单个元素并重新绘制。 cy.batch()
用于修改连续的大量元素甚至更便宜。