热门标签 | 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~


推荐阅读
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 本文详细介绍了在企业级项目中如何优化 Webpack 配置,特别是在 React 移动端项目中的最佳实践。涵盖资源压缩、代码分割、构建范围缩小、缓存机制以及性能优化等多个方面。 ... [详细]
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 理解远程服务调用:RPC与HTTP
    本文深入探讨了远程服务调用中的两种主流技术——RPC(远程过程调用)与HTTP(超文本传输协议),分析了它们的工作原理、特点及适用场景。 ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • Netflix利用Druid实现高效实时数据分析
    本文探讨了全球领先的在线娱乐公司Netflix如何通过采用Apache Druid,实现了高效的数据采集、处理和实时分析,从而显著提升了用户体验和业务决策的准确性。文章详细介绍了Netflix在系统架构、数据摄取、管理和查询方面的实践,并展示了Druid在大规模数据处理中的卓越性能。 ... [详细]
  • Python处理Word文档的高效技巧
    本文详细介绍了如何使用Python处理Word文档,涵盖从基础操作到高级功能的各种技巧。我们将探讨如何生成文档、定义样式、提取表格数据以及处理超链接和图片等内容。 ... [详细]
  • 雨林木风 GHOST XP SP3 经典珍藏版 V2017.11
    雨林木风 GHOST XP SP3 经典珍藏版 V2017.11 ... [详细]
  • Hadoop发行版本选择指南:技术解析与应用实践
    本文详细介绍了Hadoop的不同发行版本及其特点,帮助读者根据实际需求选择最合适的Hadoop版本。内容涵盖Apache Hadoop、Cloudera CDH等主流版本的特性及应用场景。 ... [详细]
  • 深入理解 .NET 中的中间件
    中间件是插入到应用程序请求处理管道中的组件,用于处理传入的HTTP请求和响应。它在ASP.NET Core中扮演着至关重要的角色,能够灵活地扩展和自定义应用程序的行为。 ... [详细]
  • 本文介绍了如何在Ubuntu 16.04系统上配置Nginx服务器,以便能够通过网络访问存储在服务器上的图片资源。这解决了在网页开发中需要使用自定义在线图标的需求。 ... [详细]
  • 本文探讨了通过数组操作、事件委托、插件化开发、字符串拼接优化、HTML5 Data属性的使用、优先采用原生JavaScript以及JavaScript文件的压缩等方法,来提升jQuery应用程序的性能。 ... [详细]
  • 本文详细介绍了如何通过 `vue.config.js` 文件配置 Vue CLI 的打包和代理设置,包括开发服务器配置、跨域处理以及生产环境下的代码压缩和资源压缩。 ... [详细]
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社区 版权所有