单页应用(SPA)的一个卖点是将传统上在服务器上执行的工作转移到客户端。我认为 SPA 已经实现了这一承诺。
然而,并非一切都是完美的。很容易过度热情,将过多的工作推送到客户端。我们经常忘记我们无法控制客户端的环境——客户端可以是十年前的机器,也可以是最新最强大的智能手机,网络速度也各不相同。我们唯一能确定的是用户在浏览器中查看我们的网站。
处理
根据我的经验,密集处理和需要在服务器和客户端之间保持一致的数据,例如日期转换或需要精确计算的数据(如金钱),是服务器端渲染的主要候选对象。
分页
在客户端执行的一个常见任务是分页。对于小数据集,这效果很好;但是,小数据集永远不会保持小规模。随着数据增长,应用程序变慢,最终变得无响应。不幸的是,你不知道这正在发生,因为它在客户端上,更糟糕的是,它不会在所有客户端上发生,这使得故障排除变得困难。
将分页从客户端移到服务器将缓解客户端上与分页相关的性能问题。你可能在想,“但现在我要进行大量的 API 调用。进行这么多 API 调用似乎不是最优的。“确实,看起来是这样,但你会惊讶于数据从服务器返回的速度有多快。最好的部分是什么?你控制服务器,可以根据需要增加容量。
最后,你想为用户提供丰富的响应式体验,有时这意味着让服务器承担繁重的工作。
总结
总结一下,在可能的情况下,我们希望将工作转移到客户端,但这样做,我们很快就会使客户端超负荷。将分页和密集处理等艰巨任务保留在服务器上可以保护我们免于使客户端不堪重负。
作者:Chuck Conway 是一位 AI 工程师,拥有近 30 年的软件工程经验。他构建实用的 AI 系统——内容管道、基础设施代理和解决实际问题的工具——并分享他沿途的学习成果。在社交媒体上与他联系:X (@chuckconway) 或访问他的 YouTube 和 SubStack。