【问题标题】:Multiple CKEditor5 in one page - performance issue一页中有多个 CKEditor5 - 性能问题
【发布时间】:2019-05-05 16:17:37
【问题描述】:

我从后端收到一个对象数组,其中包含文本作为字段之一。我希望能够编辑该文本。

到目前为止,我有这样的事情:

 <div *ngFor="let speech of speeches; index as i">
      <div class="card">
        <div class="card-header">
          <div class="row">
           //some other input fields
        <div class="card-body">
          <ckeditor [(ngModel)]=speech.content
                    [editor]="editor"
                    name={{i}}
                    required
                    [config]="ckeConfig"
                    debounce="500"
                    (change)="onChange($event)">
          </ckeditor>
        </div>
      </div>
  </div>

当 Speeches 数组达到 30-40 左右时它可以正常工作,但对于更大的它甚至会导致浏览器崩溃。

有人遇到过这个问题并解决了吗?

【问题讨论】:

    标签: ckeditor angular6 ckeditor5


    【解决方案1】:

    由于内部抽象模型,每个 &lt;ckeditor&gt; 组件占用约 5MB 内存。它监听各种全局事件,并提供了自己的工具栏和各种按钮,因此 DOM 也被编辑器放大。

    运行如此数量的编辑器肯定会降低您的页面速度,我们不建议这样做(由于上面列出的问题,任何编辑器都会发生这种情况)。对于这个问题,可能有一些或多或少复杂的解决方案:

    • 仅在单击可编辑元素后初始化编辑器。在模糊事件上销毁旧编辑器或单击第二个可编辑元素并在给定文本上初始化新编辑器 - 这需要在元素上创建一个简单的包装器
    • 创建一些分页以减少页面上运行的编辑器数量
    • 编辑器可见时初始化,不可见时将其销毁

    【讨论】:

    • 我只想在编辑器聚焦时初始化它。我该如何实施您的建议?你有一个例子吗?你能帮忙吗?我正在使用 Angular
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 2021-01-28
    • 1970-01-01
    • 2019-09-08
    相关资源
    最近更新 更多