Lobsters | 原文链接 | 2026-09-09 收录

不要客户端 JS 的「极端服务端渲染」:光靠慢慢推送 HTML 就做出了 Flappy Bird

来源: scd31.com — 2025-02-16

概述

作者想探索一种完全不用前端 JavaScript 的动态网页方案。既然浏览器会随新到达的 HTML 逐行增量渲染、连 CSS 都能实时生效,那只要服务端持续开着连接、以人类可读的速率往浏览器「滴」HTML/CSS,就能从服务器端不断刷新页面。再配合一个指到隐藏 iframe 的 <form> 来无缝收集用户输入,他甚至用纯后端物理引擎加 60FPS 的 CSS 流实现了一版完整的 Flappy Bird 克隆——把前端 JS 全关掉网页照样能玩。实测性能不差:一个 Rust 实现单核能同时跑约 500 局游戏,每局带宽约 20KiB/s;真正的痛点是延迟——每次点击都要一个网络往返,离服务器越远越卡。副作用是这种「无限挂起的连接」差点把作者 Pleroma 实例的链接预览模块打崩,最后还上报成一个 DoS 攻击向量并被快速修复。

核心要点

金句

Turns out that some applications really don't like sites that keep the connection open indefinitely, slowly trickling data through!
返回 Lobsters 首页