类似于 Nuxt.js
的 asyncData
和 next.js
的 getInitialProps
这些首屏渲染的时候有两种方式:
- 服务端发送 HTTP 请求 --> 存储进
store
--> 返回页面 - 返回页面 --> 客服端发起 HTTP 请求
我和同事在这里有分歧了,请教下怎么样的才是最佳实践
我认为: 方式1比较好
因为服务器基本同属一个内网。Node 服务器和 API 服务器的通讯速度,优于客户端和API服务器的通讯速度 缺点如果API缓慢的话,那么首屏页面也缓慢 SEO也比较全
他认为: 方式2比较好
SSR就是页面出来得快,即便页面也没什么数据 接口崩了也不要紧,起码页面出来了,然后在客户端报错
那么你觉得呢
方式一:
方式二:
我认同你的
方式二不就是前端渲染么。。。
@cllgeek 有什么经验分享吗。
目前两种方式都混着用,发现各有各的好,也不知道大家是怎么用的
@axetroy 你指的是 pagelet 的方式? 首屏是 SSR 渲染出来,接下来的次屏是 HTTP 请求后局部更新?然后如果在次屏刷新的话,它本身是 SSR 渲染的。
发起HTTP请求的最佳实践,是服务端发起,还是客户端发起?
我是没看懂,这个 HTTP 请求具体指?
混着用最好。需要seo的后端全部渲染,不需要seo的,后端只渲染骨架,前端发起请求再渲染
@atian25 6楼说的,是全渲染还是渲染骨架的问题,是我没把问题描述清除 :(
我目前也混着用, 坑也不少,代码不好复用,客户端一套,服务端一套
@zy445566 有些场景不是很需要,比如 web app
方法2的逻辑比较通用, 不止是首屏渲染的组件数据, 在前端跳转时, 任何组件都可以用同样的方式拿数据, 等于少了一些代码流程.
但是如果页面上的组件是用动态数据渲染的, 那么方法2的首屏渲染再快也没用吧?
@axetroy 那为啥还要SSR,感觉这样前端加载也快不了多少,非SSR的优化点也不少
=.= 我觉得要SEO的话,还是 nujucks + JQ 大法好使。SPA真不是万能💊。SSR 不累么?给自己找那么多麻烦事。这里分离又那里分离。
别再技术至上了,没用。兄嘚。