王牌javascript编辑器多个实例

问题描述:

我正在使用一个接口,使用一个有向图来建模软件流水线,其中每个节点都有关联的元数据和(最相关的)一个可编辑的代码块。现在我使用ACE来实现许多代码友好的功能,但是一旦流水线达到一个相当低的复杂度门槛,ACE似乎就会陷入停顿,从而影响页面其余部分的响应能力。王牌javascript编辑器多个实例

眼下,这是发生了什么事,每当一个新的节点出台的相关部分:

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会话没有有朝一日能关闭,不互相打好。我正在试验不同的时机来宣布它们“不可编辑”,并希望减少它们的内存需求,但更大的用户界面结构使得这很难。有没有其他人试图改善多个活动ACE实例的性能?

我认为这是由字体大小轮询造成的https://github.com/ajaxorg/ace/blob/master/lib/ace/layer/text.js#L88