我们的网络应用会定期创建和销毁ckeditor编辑器。我们看到Chrome中存在内存泄漏,在分析之后,由于调用了ckeditor.tools.bind,似乎对ckeditor的引用仍然存在。 editor.destroy应该删除这些绑定吗?如果没有,有没有办法自己删除它们?
显示问题的示例代码(添加超时以查看时间是否是问题)
var editor;
function replaceDiv() {
if ( editor ) {
editor.destroy();
}
setTimeout(function() {
editor = CKEDITOR.replace(document.getElementById("editable2"));
setTimeout( function() { replaceDiv()}, 1000);
}, 1000);
}
答案 0 :(得分:0)
潜在的问题是我有另一个始终处于活动状态的编辑器。当最后一个编辑器被销毁时,ckeditor似乎做了一些特殊的内务处理。由于我们从未达到过零编辑,因此这个内务管理没有启动。我会根据需要创建和销毁我们的其他编辑器,因为它并不总是可见