知乎首页的代码,有 html 和一大段 json, 这是有什么特殊用途吗

2020-02-03 14:10:24 +08:00
 find456789

view-source:https://www.zhihu.com/

我知道他们用了 react,

但是,为什么不直接完全渲染成 html 呢?

分成 html 和 json 有啥好处吗?

知道的朋友能解答一下吗


我发现 淘宝网也是这样的 https://s.taobao.com/search?q=%E5%A5%B3%E8%A3%85

不太明白这样做的好处, 为了 seo 吗? 或者别的?

2477 次点击
所在节点    问与答
7 条回复
ctnjry
2020-02-03 14:14:17 +08:00
运行时恢复上下文
belin520
2020-02-03 14:24:45 +08:00
SSR
Torpedo
2020-02-03 14:30:26 +08:00
ssr 只是渲染出页面的初始状态,网页运行的时候还要在这个初始状态上接着运行
字符模板渲染 html,初始状态就在 html 里。
react、vue 等渲染 html,初始状态就在 json 里。
find456789
2020-02-03 14:36:24 +08:00
@Torpedo

谢谢

我似乎明白了一点点

你的意思是:
ssr, 网页首次打开, 服务器把初始状态吐在网页里,作为一个变量

react 在浏览器开始执行以后,优先读取这个 初始变量, 然后开始渲染, 这时候网页已经展示了该展示的所有内容

不会再发送请求给服务器

当用户做了其他操作,才会发送请求,请求额外数据

是吗
reeco
2020-02-03 14:43:46 +08:00
为了快,不白屏
Torpedo
2020-02-03 16:27:27 +08:00
@find456789 是的。 不过这都是理论情况。实际 ssr 由于业务的问题,很可能还是有二次请求。
ssr 这东西,不要局限想,只要符合 http 和浏览器解析规则,你怎么搞都可以
Fortnight
2020-02-03 18:51:56 +08:00
@find456789 你说的就是比较理想的情况。实际场景下可能会有一部分内容不适合在服务端获取,所以还是会放到客户端运行期间再请求。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/641830

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX