网页与前端 · 综合
在静态站点、服务端渲染和浏览器应用之间选择
一句话: 内容越固定,架构就该越简单——你加的每一层动态性,从此每天都要为它付费。
三个家族
静态。提前构建好的文件,从分发网络提供。快、便宜、几乎打不垮。适合宣传站、文档、博客和落地页。
服务端渲染。页面在每次请求时构建。适合个性化内容、变动的库存,以及任何内容取决于「谁在问」的场景。
浏览器应用。浏览器运行一个应用,数据单独获取。适合交互密集的系统——仪表盘、编辑器、内部工具。
不跟风地选
问三个问题:内容中有多大比例对所有用户都一样、搜索引擎能看到它有多关键、单个页面上有多少交互。做成浏览器应用的宣传站,在加载时间和复杂度上付了钱,却什么也没得到。
可以混着来:站点大部分静态,一个区域动态。对于带个人中心的内容型系统,这通常是对的答案。
维护上有什么不同
静态站点很少自己坏。带服务端的应用需要监控、安全更新、环境和负载处理。一年下来运维成本的差距,远大于初期开发的差距。
深入一层
在混合系统里,把提前构建的内容和运行时获取的数据清楚地分开,各自给一套缓存策略。生产环境里大多数「数据是旧的」问题,都来自一层层堆起来、却没有单一策略来裁决的缓存。