个人博客
项目简介
程序员这个行业每天都有新的工具诞生,新的轮子出现。好用的工具,好用的轮子都是学不完的,毕竟的记忆范围是有限的,但这些工具,这些轮子又能好好的提高我们的工作效率,所以不停的学习,不停的输入就成了每个程序员掉头发的首要原因。
注明记忆学家capsion cps
曾经说过:好记性不如烂笔头!,虽然我们不能记住多则万字千字,少则百字十字的知识点内容,但几个字的知识点名称总能在大脑某处找到个地方存放,所以就有了本博客,起源于有道笔记,结束于csdn。
路由结构
项目结构
DIR:.vitepress #
|-- theme/ # 「theme」
| |-- components/ # 「components」
| | `-- test.vue #
| |-- style/ # 「style」
| | `-- vars.css #
| |-- Layout.vue #
| `-- index.ts #
|-- utils.ts #
|-- Sidebar.ts #
|-- Nav.ts #
|-- Header.ts #
`-- config.ts #
网站优化
首屏加载慢
首先网站的首屏加载非常慢,通过debug发现,因为首页的轮播组件采用了大量的动态gif作演示,gif图参与了首屏加载,所以会将首屏动画完全卡住,优先要对图片进行优化。
优化方式:
js文件请求优化:
- 能使用cdn的都使用cdn,不再从主站进行请求(react runtime,docuaraus runtime等)
图片请求优化:
- 所有图片使用七牛云cdn
- 添加一个图片组件,首先先加载预览图,当用户点击才开始加载gif
图片压缩优化:
- 前端编译完成build时,再次执行一个脚本调用本地的pngquant,对static下的所有png进行压缩
- 服务器上的nginx,对所有图片请求进行拦截,判断客户端是否支持webp格式,动态生成webp并返回,同时缓存该图片
- 优化轮播组件逻辑,对展示的gif图片进行预览抽取,先加载预览用的小图jpg,然后再异步请求gif,当gif完全下载后再替换小图,同时根据gif时长判断进行自动切换轮播
- 整站cdn分发