关于SSR和SPA首屏速度的问题

发布于 2022-09-12 22:45:12 字数 253 浏览 34 评论 0

都说SSR首屏速度快,我怎么感觉SSR应该比SPA首屏渲染慢呢?因为SSR需要在Server端处理很多东西,而SPA只是简单的丢个Html而已(白屏问题)。
我觉得确切的说应该是SSR首屏比SPA慢,因为他返回的是数据处理完成之后的Html,他不会有白屏问题,并一定程度上缩短了SPA的白屏占用时间(Server端调用接口基本可以忽略网络阻塞)。

所以我的理解是

SSR:(请求......)→ 页面展示
SPA:(请求)→ 页面展示(白屏) → 页面展示

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浪推晚风 2022-09-19 22:45:12

这里牵扯两个概念:CSR(Client Side Rendering) 和 SSR(Server Side Rendering),下图可以看出,最大的区别在于首屏渲染

image.png

你提到的 SPA 应用就是以 CSR 方式渲染,其缺点:

  • 首屏体验差
  • SEO不友好

SSR方案就是为了弥补CSR的不足之处,当然也有其缺点:

  • 上手成本高,原因在于需要依靠 node 服务,从前端转向全栈
  • 同样 CSR 的优点也是 SSR 的缺点

你提到的 SSR 模式比 CSR 慢,确实如此,毕竟要在 node 层调接口组装数据生成模板,这里就需要根据业务情况考虑哪些内容适合 SSR, 哪些内容适合 CSR,尽可能减少 node 层渲染逻辑。

当然现在流行同构开发模式,也就是结合 SSR 与 CSR 两种渲染模式,代表框架有:

  • react: next.js、umi.js
  • vue: nuxt.js

之所以说ssr快,主要体现在http请求数量上,ssr只需要请求一个html文件就能展现出页面,虽然在服务器上会调取接口,但服务器之间的通信要远比客户端快,甚至是同一台服务器上的本地接口调取。

spa慢主要慢在需要请求大量的js资源,一般的首页,请求10几个js都算少到,要知道js的加载是同步的,页面逻辑可能藏在最后几个js里面,请求-等待-下载-然后是解析js-再调接口-展现页面。

项目足够小,那么谁快谁慢页不一定,越大的项目效果越明显。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文