如何优化highlight高亮markdown

简介

最近一直在纯手工搭建自己的个人博客,其中用到了highlight插件来高亮markdown,刚开始本地开发的时候也没注意,渲染的挺快,但是真正放到服务器上的时候,我都惊呆了,一个js竟然用了2.5s加载,体验极差,在经过一系列优化之后,最终降到了26ms,那么下面我就讲下我整个的优化过程。

优化历程

首先呢,我发现这个webpack压缩过后的JS大概有1.5M,所以第一想到就是在nginx配置了gzip压缩,代码如下

    gzip  on;
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_http_version 1.1;
    gzip_comp_level 9;
    gzip_types       text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php application/javascript application/json;
    gzip_disable "MSIE [1-6]\.";
    gzip_vary on;

可惜效果并不如意,体积确实小了不少,但是加载还是很慢,于是我想如果我给他预读取呢,是不是又好了一点呢,于是,我给路由配了prefetch,如下所示:
在这里插入图片描述
但是,结果只快了8,9ms,可见并不如意,可能这时候大家会说可以尝试利用缓存,但是缓存只是针对第一次之后的,而现在的问题是第一次就很慢了,所以缓存并不符合此情景,最终,我就决定在hightlight这个插件脚本上下功夫,看看能不能只引核心脚本,于是我就去看了官方的markdown,看完了之后,我终于知道它的体积为什么那么大了,因为它脚本里面含了各国的语言,表情什么的,当然我也找到了我想要的,就是只引核心脚本和样式,代码如下

import hljs from 'highlight.js/lib/core';
import 'highlight.js/styles/github.css';

在修改之后,最终体积只有16kb,这样加载渲染速度自然而然就降低了很多很多很多,只用了26ms,非常之nice~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值