加载多个 CKEditor 很慢

use*_*042 1 ckeditor page-load-time

我在一个网页上有很多 ckeditors 供学生输入数据。我有很多 ckeditor,因为每个都针对一个变量。不幸的是,输入文本字段对于请求的数据来说太小了。问题是网页加载时间太长,有时网页会挂起。

我目前正在加载近 425 个编辑器。

这是我的三个代码示例:

<script type='text/javascript'>//<![CDATA[
    $(window).load(function () {
        CKEDITOR.on('instanceReady', function (ev) {
            var jqScript = document.createElement('script');
            var bsScript = document.createElement('script');

            jqScript.src = 'http://code.jquery.com/jquery-2.0.2.js';
            bsScript.src = 'http://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js';

            var editorHead = ev.editor.document.$.head;
            editorHead.appendChild(jqScript);
            editorHead.appendChild(bsScript);
        });

        // Load CK Editor
        CKEDITOR.replace('editor1', {
            contentsCss: 'http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css'
        });
        // Load CK Editor
        CKEDITOR.replace('editor2', {
            contentsCss: 'http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css'
        });
        // Load CK Editor
        CKEDITOR.replace('editor3', {
            contentsCss: 'http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css'
        });
    });//]]>
</script>
Run Code Online (Sandbox Code Playgroud)

我遵循了ckeditor 上的性能指南,在 Stackoverflow 中搜索了答案,但它仍然无法正常工作。我什至将 ckeditor 工具栏最小化为一行。我认为必须有一种方法来加载 ckeditor,而不必在页面加载时加载所有 ckeditor 和 contentCss,但是当需要 ckeditor 时。任何帮助将不胜感激。

Rei*_*mar 5

但是网页上的ckeditor总数几乎是425。

您是否尝试过同时打开任何应用程序 425 次?浏览器中的 425 个选项卡、425 个写字板、425 个什么的?我不这么认为。

所以答案很简短——你做错了。您不应一次初始化所有编辑器。需要时按需加载,不需要时销毁。无论如何,用户不能同时编辑 425 文本。

更长的答案是经典编辑器是最重的,因为它使用<iframe>. 因此,当您初始化 425 时,您会初始化 425 个 iframe。内联编辑器要轻得多。还有一个divarea插件,它使经典编辑器使用内联可编辑元素而不是<iframe>,因此它也更轻巧。

但答案仍然是——你做错了。