我已经基于我的ajax数据生成了多个ckeditor实例,并按需销毁该实例,如下所示

 for (var i in CKEDITOR.instances)
            try{
                CKEDITOR.instances[i].destroy();
            }catch(e){
                 CKEDITOR.instances[i] = null;
            }
 }


我已经使用给定值的循环生成了编辑器。查看plunker

基本上,一旦基于ajax数据加载页面,我就需要显示所有编辑器。因此,当我的数据很大时,创建多个实例,这将占用浏览器内存。

按需启动编辑器不是我的要求。页面加载后,如何显示编辑器并考虑浏览器内存?请指教

最佳答案

如果我是你,我会使用轻量级的inline editor instances。按需创建它们以节省时间并提高性能(plunker):

// http://docs.ckeditor.com/#!/api/CKEDITOR-cfg-disableAutoInline
CKEDITOR.disableAutoInline = true;

function generateEditor( i ) {
  return CKEDITOR.dom.element.createFromHtml( '<div contenteditable="true" id="editor' + i + '"></div>' );
}

$(function() {
  var holder = CKEDITOR.document.getById( 'holder' ),
      el;

  for ( var editor = 100; editor--; ) {
    el = generateEditor( editor );
    holder.append( el );

    el.once( 'click', function() {
      CKEDITOR.inline( this );
    } );
  }

  console.log( CKEDITOR.instances );
});


也:


确保使用尽可能小的插件子集来提高性能。 basic package是一个很好的起点,但也请参考builder

09-30 16:39
查看更多