我正在开发一个界面,该界面使用有向图对软件管道进行建模,其中每个节点都有关联的元数据和(最相关的)可编辑代码块。现在我使用 ACE 是因为它有许多代码友好的特性,但是一旦管道达到相当低的复杂性阈值,ACE 似乎就会停止,从而降低页面其余部分的响应能力。
现在,这是引入新节点时发生的相关部分:
view.codeDiv = d3.select('#code-section');
view.aceEditor = ace.edit('task-code');
view.aceEditor.setTheme("ace/theme/chrome");
view.aceEditor.getSession().setMode("ace/mode/ourMode");
view.aceEditor.getSession().on('change', function(e) {
if (view.model !== undefined &&
view.aceEditor !== undefined &&
view.model.get('cmd') !== view.aceEditor.getValue() &&
view.aceEditor.getValue() !== '') {
view.model.set('cmd', view.aceEditor.getValue());
}
});
我担心的是 ACE 会议永远不会结束,而且彼此之间的关系也不好。我正在尝试使用不同的时间来声明它们“不可编辑”并希望减少它们的内存需求,但是 UI 的更大结构使得这变得困难。有没有其他人在尝试提高多个活动 ACE 实例的性能时运气好?