SSR 的意思是服务器端渲染。它是搜索引擎优化和更快的加载时间所需要的。然而,用 JavaScript 编写的服务器不具有与浏览器相同的 API。因此,没有办法完全渲染应用程序。即使有可能,也没有意义,因为运行时环境是针对不同的用例定制的。例如,服务器端没有点击事件等。因此,SSR 返回部分渲染的应用程序 + 客户端代码。
当客户端代码执行时,它将水合应用程序,这意味着它将获取从服务器返回的部分渲染的应用程序,计算新状态并绑定事件等。客户端应用程序比其仅客户端版本执行的工作更少,但仍然有一些任务被重复。像 Qwik 这样的可恢复框架试图解决这个缺点。
简单来说,可恢复性意味着无需重新获取资源即可恢复应用程序的状态。它是编写同构应用程序的新兴模式。
在 Resumabilty 中,不存在自上而下的水合作用,至少在 Qwik 的实现中是这样。客户端逻辑要么注入到服务器返回的代码中,要么在需要时逐段获取。Qwik 将应用程序的状态和框架状态序列化为从服务器返回的 HTML。当用户单击按钮时,事件会在用户交互时绑定到 UI。
编辑:何时恢复服务器渲染的应用程序有三种基本方法:
可恢复性问题主要集中在由于网络延迟而引入的 UI 延迟,因为代码是在用户交互时获取和执行的,这在低端设备和慢速网络上变得更加明显。
协调意味着协调两个状态,换句话说,比较和修补应用程序先前呈现的状态。React 使用虚拟 DOM,并在状态更改时重新渲染所有内容。然而对于大型应用程序来说,这是昂贵的。因此,它不会重新计算整个 DOM 树,而是保留未更改的部分并仅重新渲染已更改的分支。在服务器端渲染的上下文中,协调意味着协调应用程序的服务器端渲染状态与其客户端渲染逻辑。
我们知道可恢复性是 Web 应用程序的未来。
这是一个大胆的声明。在计算机科学中,一切都是权衡。
是否有可能使当前的大部分元框架可恢复?
我不这么认为。也许其中一些,但绝对不是全部,因为可恢复性很难改造,并且可能需要完全重写。并非所有应用程序都需要 SSR 或使用搜索引擎优化。
| 归档时间: |
|
| 查看次数: |
826 次 |
| 最近记录: |