Skip to main content

复杂工程的实践测试

 

git : http://deve.work:33333/colin/mde.git

commit : c61827061d6a34cbd2ca2fae62b59fcb780f192e

prompt :   在vscode里面打开一个markdown非常慢,每次打开一个文件都要白屏很久

fix commit :  3e64dfab0643fecc583bb1e77467373d7e43854e

答案:

  1. Lute 双重加载 (3.8MB)

  之前的代码在 <script> 的 onload 回调里才设 id="vditorLuteScript"。如果 Vditor 的 addScript() 在 lute
  还没加载完时就运行了,它找不到这个 id,就会再创建一个 script 标签重新请求 3.8MB。

  修复:用 window.__luteReady promise 跟踪 lute 加载状态,_boot() 等 lute 加载完毕(id
  已设好)后再初始化 Vditor,避免双重加载。

  2. Icons 同步 XHR (43KB)

  <script defer> 加载了 ant.js,但没有 id="vditorIconScript"。Vditor 初始化后调用 addScriptSync()
  时找不到这个 id,就用同步 XHR 重新请求一遍——这会阻塞主线程。

  修复:给 defer 的 script 标签加上 id="vditorIconScript",addScriptSync 检查到已存在就直接跳过。

  3. Loading 遮罩 1200ms 人工延迟

  之前 Vditor ready 之后还要等 1200ms 才移除 loading 遮罩。

  修复:ready 后立即移除。