2013-05-20 131 views
2

我正在使用一個接口,使用一個有向圖來建模軟件流水線,其中每個節點都有關聯的元數據和(最相關的)一個可編輯的代碼塊。現在我使用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實例的性能?

回答