SSR发起HTTP请求的最佳实践,是服务端发起,还是客户端发起?
发布于 1 年前 作者 axetroy 1226 次浏览 来自 问答

类似于 Nuxt.jsasyncDatanext.jsgetInitialProps

这些首屏渲染的时候有两种方式:

  1. 服务端发送 HTTP 请求 --> 存储进 store --> 返回页面
  2. 返回页面 --> 客服端发起 HTTP 请求

我和同事在这里有分歧了,请教下怎么样的才是最佳实践

我认为: 方式1比较好

因为服务器基本同属一个内网。Node 服务器和 API 服务器的通讯速度,优于客户端和API服务器的通讯速度 缺点如果API缓慢的话,那么首屏页面也缓慢 SEO也比较全

他认为: 方式2比较好

SSR就是页面出来得快,即便页面也没什么数据 接口崩了也不要紧,起码页面出来了,然后在客户端报错

那么你觉得呢

方式一: 1.png

方式二: 2.png

14 回复

我认同你的

方式二不就是前端渲染么。。。

@atian25 不一样的把,SPA不具备SEO。HTML就一个div标签。

方法2: 解析Vue/React组件,返回好模版,然后在客户端再发送HTTP请求获取数据。

这个比 SPA 快点吧

@cllgeek 有什么经验分享吗。

目前两种方式都混着用,发现各有各的好,也不知道大家是怎么用的

@axetroy 你指的是 pagelet 的方式? 首屏是 SSR 渲染出来,接下来的次屏是 HTTP 请求后局部更新?然后如果在次屏刷新的话,它本身是 SSR 渲染的。

发起HTTP请求的最佳实践,是服务端发起,还是客户端发起?

我是没看懂,这个 HTTP 请求具体指?

混着用最好。需要seo的后端全部渲染,不需要seo的,后端只渲染骨架,前端发起请求再渲染

@atian25 6楼说的,是全渲染还是渲染骨架的问题,是我没把问题描述清除 :(

@pretty-foam

我目前也混着用, 坑也不少,代码不好复用,客户端一套,服务端一套

@axetroy 渲染骨架,那搜索引擎能抓到你们想让它抓到的信息么?

来自酷炫的 CNodeMD

@zy445566 有些场景不是很需要,比如 web app

方法2的逻辑比较通用, 不止是首屏渲染的组件数据, 在前端跳转时, 任何组件都可以用同样的方式拿数据, 等于少了一些代码流程.

但是如果页面上的组件是用动态数据渲染的, 那么方法2的首屏渲染再快也没用吧?

@axetroy 那为啥还要SSR,感觉这样前端加载也快不了多少,非SSR的优化点也不少

=.= 我觉得要SEO的话,还是 nujucks + JQ 大法好使。SPA真不是万能💊。SSR 不累么?给自己找那么多麻烦事。这里分离又那里分离。

别再技术至上了,没用。兄嘚。

回到顶部