ITSWE博客

这个博客没有一行 JavaScript

零 JS 不是技术洁癖,是拒绝「默认带运行时」的行业惯性。阅读是静态行为,别让用户为你用不上的代码买单。

这个博客的全部页面,浏览器要执行的 JavaScript 是零字节。不是“很少”,是零。

想先说清楚这不是技术洁癖。我不恨 JavaScript,我恨的是默认。现在新建一个网站,模板里自带几十 KB 到上百 KB 的运行时,好像这是建站的出厂标配。可你拿一个典型的博客页面问一句:这个页面上,有什么是必须在用户的浏览器里算出来的?答案几乎总是:没有。文章是写好的,列表是排好的,翻页是链接。阅读是静态行为,静态行为不需要运行时。

零 JS 买到了什么。首屏没有水合过程,点开就是内容;样式全部随 HTML 一次性到位,不存在“页面出来了但按钮还没醒”;对搜索引擎,正文就是它抓到的 HTML,不存在渲染障碍;对 AI 检索,语义干净得像印刷品。这一个月我们反复验证过同一件事:凡是把正文放进静态 HTML 的页面,哪个引擎都抓得顺;凡是依赖客户端渲染的,都存在被漏掉的风险。

代价呢?没有评论框、没有即时搜索、没有炫的滚动动效。我的取舍很明确:这些都可以用别的方式补——评论可以上独立服务,搜索可以构建期生成索引——但页面本身,一个字节脚本都不进。

那什么时候需要 JavaScript?答案写在架构里:真的有交互时,用岛屿的方式局部加载。以后如果在这个站的某个词条页里嵌一个接触网计算器,那块组件会带自己的脚本,而页面其余部分依旧是死 HTML。交互是采购来的,不是出厂预装的。

下一次新建页面时,不妨先做我这个小实验:问一遍“这个页面有什么要在用户浏览器里算的”。多数时候,答案是让那几十 KB 留在包里。

观点前端
返回全部文章