服务器端呈现 (Next.js) 和静态站点呈现 (Gatsby.js) 有什么区别?
What is the difference between server side rendering (Next.js) and Static Site rendering (Gatsby.js)?
我想创建一个不依赖客户端的网站 JavaScript,但是,我仍然想使用客户端路由等 SPA 功能,所以我正在考虑使用不在客户端呈现的框架。这两个似乎是此类事情的首选,但是,我不确定这两种不同类型的服务器处理之间的差异。
服务器端呈现是从 client/browser 向服务器发出请求的地方,然后在该点即时生成 HTML 运行-time 并发送回浏览器进行渲染。
静态站点呈现非常相似,但是解析是在 构建时间 期间进行的。因此,当发出请求时,HTML 将被静态存储并可以直接发送回客户端。
它们各有利弊:
虽然静态站点在 运行 时会更快,因为不需要服务器端处理,但这确实意味着对数据的任何更改都需要在应用程序服务器端进行完全重建。
或者,使用服务器端方法,将任何缓存放在一边,即时处理数据并直接发送到客户端。
通常,最好根据内容的动态性和实时性与应用程序的性能需求来做出最佳决定。
例如,Whosebug 很可能使用服务器端呈现方法。每次提交新的 post 时,它都会重建每个问题页面的静态版本,这有两个问题。数据还需要非常实时,用户能够看到 post 几秒钟前提交的数据。
但是,几乎没有任何内容更改的博客网站或促销网站会从静态网站设置中获益更多。响应时间会更长,服务器成本会更低。
我想创建一个不依赖客户端的网站 JavaScript,但是,我仍然想使用客户端路由等 SPA 功能,所以我正在考虑使用不在客户端呈现的框架。这两个似乎是此类事情的首选,但是,我不确定这两种不同类型的服务器处理之间的差异。
服务器端呈现是从 client/browser 向服务器发出请求的地方,然后在该点即时生成 HTML 运行-time 并发送回浏览器进行渲染。
静态站点呈现非常相似,但是解析是在 构建时间 期间进行的。因此,当发出请求时,HTML 将被静态存储并可以直接发送回客户端。
它们各有利弊:
虽然静态站点在 运行 时会更快,因为不需要服务器端处理,但这确实意味着对数据的任何更改都需要在应用程序服务器端进行完全重建。
或者,使用服务器端方法,将任何缓存放在一边,即时处理数据并直接发送到客户端。
通常,最好根据内容的动态性和实时性与应用程序的性能需求来做出最佳决定。
例如,Whosebug 很可能使用服务器端呈现方法。每次提交新的 post 时,它都会重建每个问题页面的静态版本,这有两个问题。数据还需要非常实时,用户能够看到 post 几秒钟前提交的数据。
但是,几乎没有任何内容更改的博客网站或促销网站会从静态网站设置中获益更多。响应时间会更长,服务器成本会更低。