为什么这些情况下会导致输入的卡顿

初次声明代码高亮的语言类型

不论是 python、javascript、css 等语言类型在代码块中声明的时候,第一次声明的时候,(有可能)会产生可感知的时滞,一般在 1 秒之内。
这是因为会按需加载代码高亮的解析库的预热过程,属于正常情况。

某个Block 内大片段的内容

Markdown 的解析基本上是逐行、从下至下,并且形成一些实际意义上的 Block,比如普通的段落、代码片段、标题、引用 .etc
解析 Markdown 的性能,MarkEditor 的速度足够快,但是之后还有在 Webview 渲染的过程,在 实时渲染 的过程中,这些渲染行为因为文本的变化被不断调用,会形成潜在的性能瓶颈。

在 MarkEditor 中,为了处理这个性能瓶颈,分别设计了三种分别独立的解析引擎,特别在实时渲染的过程中,会先尝试渲染某个 Block,从而最大程度上保证性能的平滑。
但是当这个 Block 内容本身就是大片段内容,如果最终解析后的 HTML (DOM)结构又很复杂,那么,最终还是会产生性能的瓶颈。
举个典型的例子, 比如全文本身就是一个代码片段,代码量还比较多,内容如下:
```html
这里是很多代码
```

如何解决?
1,一定程度上,要避免这种情况的出现;比如上面的例子中,更合适的应该使用 xxx.html.md 这样的文件命名,作为一个 code 类型的笔记文档,也没必要开启预览栏。
2,如果还是出现了,那么则建议关闭预览栏,避免“实时预览”带来的潜在性能瓶颈,如果一定要开,可以使用 预览于 Web 浏览器这个功能。
3,如果一定要打开预览栏,应该在 偏好设置->其它->预览延时增加延时。

其它情况

如果当前的 MarkEditor 也已经是最新的版本,并且文本的字数也没有过万,即使开启实时预览的情况,预期的情况,也是不应遇到卡顿的情况的。
如果还是遇到了,那么尝试 偏好设置->其它->预览延时 增加延时到 5s,如果没有什么效果,基本可断定是 bug 导致的
请参考《反馈的时候,如何提交日志》 能否找到错误日志,附件给我们。

2018-07-24 22:19
Comments
Write a Comment