我将此帖子发布到了一个使用 Discourse 的论坛:
并且我也可以在演示论坛中重现此问题。
该帖子包含大量复制粘贴的代码片段——更确切地说,不是代码,而是运行命令的输出。在关于软件和计算机的求助论坛中,这是一个相当常见的用例。
在我撰写帖子时,粘贴了长文本块(甚至没有那么长,只有几百行)后,编辑器在输入时变得越来越卡顿。我输入字母需要一段时间才能显示在屏幕上(我说的不是实时预览,只是你输入的那个文本区域)。它基本上变得无法使用。
我将此帖子发布到了一个使用 Discourse 的论坛:
并且我也可以在演示论坛中重现此问题。
该帖子包含大量复制粘贴的代码片段——更确切地说,不是代码,而是运行命令的输出。在关于软件和计算机的求助论坛中,这是一个相当常见的用例。
在我撰写帖子时,粘贴了长文本块(甚至没有那么长,只有几百行)后,编辑器在输入时变得越来越卡顿。我输入字母需要一段时间才能显示在屏幕上(我说的不是实时预览,只是你输入的那个文本区域)。它基本上变得无法使用。
不。Discourse 是免费且开源的软件。
当我将这个复制/粘贴到编辑器中时,我能够重现此问题。它确实会变得非常迟钝。
有趣的是,我在这里无法重现它:
我看到这个论坛的更新滞后了。上周我合并了一项更改,将 HighlightJS 库更新到了最新版本,这将使其快得多。
此外,https://forum.manjaro.org 实例具有 autohighlight all code 设置,这对于支持论坛来说不是一个好主意,因为大多数带有代码块的帖子将是简单的日志文件而不是实际代码。我建议他们的团队尽快禁用它。
除此之外,在主浏览器线程中突出显示超过 10k 行代码在某些设备上会明显变慢,在 Android 手机上打开 GitHub diff 时很容易看到这一点。我们计划在后台 JS 工作线程中实现这一点,但这存在一些缺点,我们还没有做到。
哦,我的错。在主页上我看到一个很大的“免费试用”按钮,这表明你只能免费_试用_它,并且在定价部分没有提到免费套餐。我猜那些是托管计划之类的。
另外,https://forum.manjaro.org 实例具有
autohighlight all code设置
是的,我已经注意到了,并猜测这可能是他们的配置错误,但这与问题无关。我可以粘贴一段同样长的合法 JavaScript 代码。即使问题实际上只由错误语法的代码高亮触发,这也不能证明代码块外的编辑器变得迟钝。
在主浏览器线程上高亮超过 10k 行代码在某些设备上会明显变慢
是的,但当我在代码块之外编辑帖子的其余部分时,没有理由发生这种情况。无论你是在主线程中执行此操作(显然是错误的——很高兴听到你正在修复它)还是在后台执行,一旦代码被高亮并且你不再编辑它,就不应该再进行任何与高亮相关的操作了。任何与高亮相关的解析、计算等操作只有在修改代码块的内容时才需要重新进行。