Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

编辑器内容过多表格数据容易卡顿 #309

Open
panxin226 opened this issue Nov 5, 2024 · 13 comments · Fixed by #353
Open

编辑器内容过多表格数据容易卡顿 #309

panxin226 opened this issue Nov 5, 2024 · 13 comments · Fixed by #353
Assignees
Labels
enhancement New feature or request

Comments

@panxin226
Copy link

问题描述

请输入遇到的问题...
您好,我在word里面大概一万多个字,有表格有图片等等各种数据,然后复制到编辑器里面,在进行打字输入,或者删除时会卡一下,输入信息都会慢一点,请问这有什么解决方案吗?

wangEditor 版本

最新版
请输入内容……

是否查阅了文档 ?

(文档链接 https://cycleccc.github.io/docs/

是/否

最小成本的复现步骤

(请告诉我们,如何最快的复现该问题?)

  • 步骤一
  • 步骤二
  • 步骤三
2024-11-05.141745.mp4
@cycleccc
Copy link
Owner

cycleccc commented Nov 5, 2024

方便给一份上万字脱敏 HTML 附件吗,可能要做下性能优化。

@cycleccc cycleccc added the enhancement New feature or request label Nov 5, 2024
@panxin226
Copy link
Author

方便给一份上万字脱敏 HTML 附件吗,可能要做下性能优化。
您好,附件如下,非常感谢!
测试文档.docx

@cycleccc cycleccc changed the title 编辑器内容过多输入数据容易卡顿 编辑器内容过多表格数据容易卡顿 Nov 14, 2024
@panxin226
Copy link
Author

方便给一份上万字脱敏 HTML 附件吗,可能要做下性能优化。

请问这个优化大概什么时候能完成啊?或者有没有什么思路,我们这边可以实现的?我看demo里面有十万字的示例都不卡,我这个才一万多字,是因为有表格的原因吗?

@cycleccc
Copy link
Owner

cycleccc commented Nov 15, 2024

周末看下,用户侧没法实现,卡点主要在表格,解析和渲染调用的函数很多,得改底层减少重复渲染

@panxin226
Copy link
Author

周末看下,用户侧没法实现,卡点主要在表格,解析和渲染调用的函数很多,得改底层减少重复渲染

好的,感谢!

@cycleccc cycleccc self-assigned this Nov 17, 2024
@cycleccc cycleccc linked a pull request Nov 17, 2024 that will close this issue
5 tasks
@cycleccc cycleccc reopened this Nov 20, 2024
@cycleccc
Copy link
Owner

暂时先尝试分页吧,复制的内容太多时分段分页展示。现在渲染的逻辑太多,不好处理。

@panxin226
Copy link
Author

暂时先尝试分页吧,复制的内容太多时分段分页展示。现在渲染的逻辑太多,不好处理。

编辑器还支持分页么?请问怎么实现啊,有例子吗?我是用VUE3开发的

@cycleccc
Copy link
Owner

有小伙伴实现过,开多个编辑器就行,难点在于需要对复制进来的富文本内容先切割,切割完再丢到多个编辑器中作为分页内容。

@panxin226
Copy link
Author

周末看下,用户侧没法实现,卡点主要在表格,解析和渲染调用的函数很多,得改底层减少重复渲染

请问一下,demo的大文件10w字和默认模式有什么区别?我同样的数据在大文件10w字里面不卡,在默认模式里面卡,大文件10w字有配置什么吗?

2024-11-25.150142.mp4

@jaluik
Copy link

jaluik commented Dec 4, 2024

我做过类似的优化,需要把对node2vnode、node2html这一些方法作缓存优化(包括缓存和特定情形下去缓存)。wangeditor 大文本本身有就有大文档卡顿问题,示例不卡的原因在于结构很单一。

@panxin226
Copy link
Author

我做过类似的优化,需要把对node2vnode、node2html这一些方法作缓存优化(包括缓存和特定情形下去缓存)。wangeditor 大文本本身有就有大文档卡顿问题,示例不卡的原因在于结构很单一。

请问node2vnode、node2html缓存优化怎么实现啊?有例子吗? 我发现大文件不卡是因为官方示例是JS写的,我们用vue开发的多包装了一层,同样的数据就会卡顿

@cycleccc
Copy link
Owner

cycleccc commented Dec 4, 2024

我做过类似的优化,需要把对node2vnode、node2html这一些方法作缓存优化(包括缓存和特定情形下去缓存)。wangeditor 大文本本身有就有大文档卡顿问题,示例不卡的原因在于结构很单一。

node2html 倒是好解决,一般情况加延时防抖节流就行,node2Vnode 这里性能开销特别大,我写了两版缓存+diff,碍于异步、选区、还有 slate 数据格式,还是有些问题。
你有啥思路不 😂

@jaluik
Copy link

jaluik commented Dec 12, 2024

我用weakmap分别存了一下 node转html的结果以及 node转vnode的结果。 里面有些坑点就是必须手动去缓存,比如e.apply的时候 如果操作的是table表也需要把table表对应的所有缓存清掉,比如list-item 也需要清除接下来缓存值

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants