热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何优化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~


推荐阅读
  • 网站前端开发的核心理念与必备技能解析 ... [详细]
  • Bootstrap 插件使用指南
    本文详细介绍了如何在 Web 前端开发中使用 Bootstrap 插件,包括自动触发插件的方法、插件的引用方式以及具体的实例。 ... [详细]
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
  • 深入探讨前端代码优化策略
    本文深入讨论了前端开发中代码优化的关键技术,包括JavaScript、HTML和CSS的优化方法,旨在提升网页加载速度和用户体验。 ... [详细]
  • Bootstrap Paginator 分页插件详解与应用
    本文深入探讨了Bootstrap Paginator这款流行的JavaScript分页插件,提供了详细的使用指南和示例代码,旨在帮助开发者更好地理解和利用该工具进行高效的数据展示。 ... [详细]
  • 电商高并发解决方案详解
    本文以京东为例,详细探讨了电商中常见的高并发解决方案,包括多级缓存和Nginx限流技术,旨在帮助读者更好地理解和应用这些技术。 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • 七款高效编辑器与笔记工具推荐:KindEditor自动换行功能解析
    本文推荐了七款高效的编辑器与笔记工具,并详细解析了KindEditor的自动换行功能。其中,轻笔记QingBiJi是一款完全免费的记事本软件,用户可以通过其简洁的界面和强大的功能轻松记录和管理日常事务。此外,该软件还支持多平台同步,确保用户在不同设备间无缝切换。 ... [详细]
  • 深入浅出解析HTTP协议的核心功能与应用
    前言——协议是指预先设定的通信规则,确保双方能够按照既定标准进行有效沟通,从而实现准确的信息交换。例如,驯兽师通过拍手使动物坐下,这实际上是一种预设的协议。本文将详细探讨HTTP协议的核心功能及其广泛应用,解析其在现代网络通信中的重要作用。 ... [详细]
  • 在Vite项目优化过程中,通过使用rollup-plugin-visualizer插件,可以有效地对Rollup打包结果进行可视化分析,帮助开发者清晰地了解各个模块的占用情况,从而进行更有针对性的优化。此外,结合其他常用插件,如vite-plugin-compression和vite-plugin-inspect,可以进一步提升项目的性能和可维护性。 ... [详细]
  • 解决JavaScript中法语字符排序问题
    在开发一个使用JavaScript、HTML和CSS的Web应用时,遇到从SQLite数据库中提取的法语词汇排序不正确的问题,特别是带重音符号的字母未按预期排序。 ... [详细]
  • 深入解析WebP图片格式及其应用
    随着互联网技术的发展,无论是PC端还是移动端,图片数据流量占据了很大比重。尤其在高分辨率屏幕普及的背景下,如何在保证图片质量的同时减少文件大小,成为了亟待解决的问题。本文将详细介绍Google推出的WebP图片格式,探讨其在实际项目中的应用及优化策略。 ... [详细]
  • 在 Ubuntu 22.04 LTS 上部署 Jira 敏捷项目管理工具
    Jira 敏捷项目管理工具专为软件开发团队设计,旨在以高效、有序的方式管理项目、问题和任务。该工具提供了灵活且可定制的工作流程,能够根据项目需求进行调整。本文将详细介绍如何在 Ubuntu 22.04 LTS 上安装和配置 Jira。 ... [详细]
  • 如何配置Logrotate进行日志文件切割并使用Crontab设置定时任务
    1.下载logrotate在Fedora和CentOS安装yuminstalllogrotatecrontabsDebian和Ubuntu上apt-getinstalllogrot ... [详细]
  • 代码:headersAccept:texthtml,applicationxhtml+xml,applicationxml;q0.9,imagewebp,image ... [详细]
author-avatar
mobiledu2502898533
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有