Hexo博客页面功能优化

前言

本文接上一篇 🚀秒开时代:博客性能优化指南 , 由于性能优化后把一些功能弄的不好使了,这次把那些功能异常问题排查一下,顺便再整理一下代码,同时把页面效果稍微优化一波,本文主要为实操记录分享

图标无了

由于魔改代码,导致自适应小屏的图标都不显示了,官方效果如下

魔改完后一个都不见了,o(╯□╰)o

分析官方页面的元素,这三个图标应该是字体图标

把官方字体文件解析一下看看效果,果然用的字体图标,通过解析发现官方的字体文件无用内容很多,下面是根据文字文件解析出来的文字图标效果图

提示

这里使用的字体展示工具是 百度字体编辑器 ,把项目中的 woff 文件拖进去就看到图标的图片效果了

kekee000.github.io/fonteditor/

从实际场景出发,我这个站点移动端小屏基本没人看,要这些也没用,最多看个主页,目前这三个功能也都用不上,直接全部清理

分析 script.js

之前这个 script.js 中把 jquery 代码写了一些点击事件代码清理掉了,只留了一行 console.log 代码

分析线上的文件请求,发现这个 script.js 虽然只有两三行内容,也占用了几十毫秒,也直接删掉,同时把代码中的引入代码也清理掉,代码引入在 after-footer.ejs 里面

语言文件

系统中默认内置了很多其他国家语言,实际只需要中文和英文配置文件即可(英文后期可能会单独搭一个非中国区的站点),因此把其他语言配置文件全部删掉,清理后的效果如下

标题与内容间距

由于之前的文件清理导致文章标题和内容之间间距太小了,不太美观

找到内容对应的元素 class 属性 article-entry ,给这个属性加个外边距 margin-top: 14px 搞定,属性位置在 article.styl

目前的图片是一个长方形图片,背景黑色,右边有一个海贼王动漫人物------佩罗娜(幽灵公主)

因为图片不够长,设置的 background-size: contain; 使图片不变形,能够填充整个头部区域

background-size 设置背景图片大小。图片可以保有其原有的尺寸,或者拉伸到新的尺寸,或者在保持其原有比例的同时缩放到元素的可用空间的尺寸

contain

缩放背景图片以完全装入背景区,可能背景区部分空白。contain 尽可能的缩放背景并保持图像的宽高比例(图像不会被压缩)。该背景图会填充所在的容器。当背景图和容器的大小的不同时,容器的空白区域(上/下或者左/右)会显示由 background-color 设置的背景颜色

当前图片转成 webp 格式后并压缩后是 18.6kb

尝试了多种图片压缩工具,发现在保证一定的质量效果下, 18.6kb 就已经是极限了

后来发现色彩颜色用的少的图片,体积小,压缩起来效果更明显,如下图片

这个图片是通过 PS 工具裁剪后,并压缩后的,当前图片体积为 4.67kb,比原来的图片少了很多倍,由于这张图片有点方,并且色彩相对单调,调整了图片在头部的显示位置,这样更协调一点

上面效果的字体也进行了放大调整,在 _variables.styl 文件中的 //Header 区域

css 复制代码
// Header
logo-size = 52px
subtitle-size = 24px

图片位置调整在 header.styl 文件中的 #banner

css 复制代码
#banner
  ...
  background-size: 100px
  background-repeat: no-repeat
  background-position: 50% 22%
  ...

图像压缩原理

  1. 有损压缩:在有损压缩中,一些图像细节会被牺牲以减小文件大小。这种压缩方法适用于照片和图像,其中一些细微的变化不会对图像质量产生明显影响。常见的有损压缩算法包括JPEG

  2. 无损压缩:无损压缩通过消除图像中的冗余信息来减小文件大小,同时保持图像质量。这种方法适用于需要保留图像质量的情况,如图标、线条图等。常见的无损压缩算法包括PNG和GIF

图像颜色越简单压缩效果越明显

测试性能

发布到 yiwuan.xyz 域名后,打开浏览器无痕模式,禁用缓存,首次打开博客 完成 用时 200ms 多一点,清除缓存并进行硬刷新 完成 用时 120ms 左右

设备和版本

  • 网络:公司常规有线网络
  • 系统:Win11 家庭版
  • 浏览器:Microsoft Edge 126.0.2578.1 (正式版本) dev (64 位)
  • 开发者工具:设置 禁用缓存 选项
  • 测试方式:浏览器单个 tab 页无痕模式下操作

项目源码地址

github.com/gywgithub/b...

小结一下

目前以 Hexo 为基础的博客功能样式之类的优化就先告一段落了,后面有时间会把 SEO 相关的也优化一下,SEO 优化结束后这个项目将不再进行花时间维护

后期准备规划手写一个支持在线编辑的博客,支持自动发布等,也会把一些常见的功能加进去,例如留言板,分享,搜索等,整体会以功能实现为主,主要是做一些技术上的实验和探索,项目还是会以开源项目的形式,如果有兴趣欢迎你的加入

欢迎讨论交流,技术探索和文章整理不易,如果喜欢可以点赞支持一下 ^_^

微信公众号:草帽Lufei

相关推荐
玉红7776 分钟前
R语言的数据类型
开发语言·后端·golang
神雕杨44 分钟前
node js 过滤空白行
开发语言·前端·javascript
网络安全-杰克1 小时前
《网络对抗》—— Web基础
前端·网络
m0_748250741 小时前
2020数字中国创新大赛-虎符网络安全赛道丨Web Writeup
前端·安全·web安全
周伯通*1 小时前
策略模式以及优化
java·前端·策略模式
艾斯特_1 小时前
前端代码装饰器的介绍及应用
前端·javascript
Sokachlh1 小时前
【elementplus】中文模式
前端·javascript
轻口味1 小时前
【每日学点鸿蒙知识】hap安装报错、APP转移账号、import本地文件、远程包构建问题、访问前端页面方法
前端·华为·harmonyos
lvbu_2024war011 小时前
MATLAB语言的网络编程
开发语言·后端·golang
问道飞鱼1 小时前
【Springboot知识】Springboot进阶-实现CAS完整流程
java·spring boot·后端·cas