分类 : 技术向共 37 篇文章
之前我在「天下武功,唯快不破 —— 我是这样优化博客的」一文中提到「对于大部分浏览器来说,确保 JS 异步加载和执行的做法其实是在操作 DOM 动态插入 <script async>」,但是并没有给出详细原因。这一次我以 Google Analytics 的统... 两个多月以前,我写了一篇文章 介绍我是如何优化我的博客的,但是我对于博客的白屏时间仍然不满意。过去一个月我在博客上进行了一系列优化实践,终于成功将博客的白屏时间减少了将近 50%,这篇文章就来记录优化的过程和方案。 不论是在 WSL、Linux 还是 macOS 上,强大的 zsh 一直是我的不二法宝,而 oh my zsh 自然成了最趁手的瑞士军刀,我自己还编写了数个 oh my zsh 插件和主题。直到有一天我突然发现:见鬼,为什么开个 iTerm2 的 Tab 要等上好几秒钟? 哪个男孩不想拥有一个速度非常快的博客 之前我也写过少许 关于 Web 性能优化的文章,但是却从未介绍过自己的博客是如何优化的。这次我来水篇文章,罗列一下我的博客的几个零散的优化点。 JavaScript 是一个具有「单线程」特性的「简单」语言,适合完成一些「简单的任务」,比如验证表单、当访客离开页面时改变页面标题和 favicon、或者渲染整个页面、双向绑定与视图更新(等等,这听起来可不像是什么「简单的任务」)。支持多线程的后端语言常常具有专门的机制在进程之间同步数据,而 Node.js 决定添加多线程支持,就需要一些变通方案了。 为了进一步缩短自己的博客的 TTFB,我决定将自己的博客部署到 Cloudflare Workers Site。没想到我会把几天时间花费在折腾这个上。缘由哪个男孩不想拥有一个速度特别快的博客 非常关心博客速度的苏卡卡时不时就用 Google 的 Pagespeed 跑一次分。终于 Google Pag... 随着越来越多的操作系统、浏览器开始支持 Dark Mode、支持相应的 Media Queries Level 5,越来越多的网站开始添加深色模式。当然我的博客也不甘落下,趁着新的主题完工不到一个月、还看得懂自己写的代码,也加上了深色模式。 每当 HTTP 协议进行重大变革的时候,客户端和服务端总是需要一定时间进行适配和兼容。而从 gQUIC 数十个迭代到 HTTP/3 的十数个草案版本,客户端和服务端之间如何决定用哪个方式连接,本文就来谈谈这个。HTTP/2 的协商方式HTTP/1.1... HTTP/3 和 HTTP/2 以及 HTTP/1.1 最大的不同应该是 HTTP/3 颠覆了 HTTP 使用 TCP 的「传统」。如果要写一系列和 HTTP/3 相关的文章,不能不提一提 QUIC 的故事。硬币:HTTP... HTTP/2 诞生于 8 年前 Google 一封 SPDY 协议白皮书。5 年前,RFC7540 和 RFC7541 的发布正式确立了 HTTP/2。5 年过去了,支持 HTTP/2 的浏览器的市场占有率达到了 96.88%,HTTP/3 已经从 QUIC 中诞生,然而回过头来看看国内各大网站,HTTP/2 仍然没有发挥它应该有的作用。不过,HTTP/2 究竟能做什么呢?