我已经基于我的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。