首页 > 其他分享 >Angular 服务器端渲染的静态 HTML 变为客户端的动态应用的过程

Angular 服务器端渲染的静态 HTML 变为客户端的动态应用的过程

时间:2023-11-13 19:46:04浏览次数:20  
标签:服务器端 渲染 HTML 应用 Angular 客户端

首先,让我们先了解一下 Angular 服务器端渲染 (SSR) 的工作原理。

当你的 Angular 应用启用服务器端渲染后,用户在浏览器中请求页面时,服务器会预先渲染出 HTML,并且将其发送到客户端。这样做的优点是可以改善首屏加载时间,提升 SEO 效果,因为搜索引擎可以抓取到预渲染的 HTML 内容。

那么,从浏览器端请求 Angular SSR 应用到页面完全交互可用,背后发生了什么呢?

  1. 用户在浏览器中请求一个页面,服务器会接收到这个请求。

  2. 服务器会运行 Angular 应用,生成应用的首屏 HTML 内容。在这个过程中,Angular 应用可能会进行 API 调用,获取一些初始化数据。

  3. 如果你的应用使用了 NgRx,那么在服务器端渲染阶段,你的应用状态会被初始化,并且可能会在处理用户请求时改变。服务器会将这个最终的状态序列化,一起发送到客户端。

  4. 服务器将生成的 HTML,以及序列化后的状态,发送到客户端。

  5. 客户端接收到服务器返回的 HTML 和状态。HTML 会立即显示在浏览器中,用户可以看到页面的内容。但是此时的页面还不是完全交互可用的,因为 Angular 还没有启动。

  6. 客户端会加载和启动 Angular。这个过程称为 "hydration" 或 "rehydration"。在这个过程中,Angular 会使用服务器发送过来的状态来初始化 NgRx Store。这样,客户端的状态就和服务器端的状态保持一致了。

  7. 当 Angular 启动完成后,页面就变成了完全交互可用的。此时,任何用户的操作都会通过 NgRx Store 来改变应用的状态。

总的来说,rehydration 是一个过程,它将服务器端渲染的静态 HTML 变为客户端的动态应用。在这个过程中,NgRx Store 会使用服务器发送过来的状态来初始化,以确保客户端和服务器端的状态一致。

标签:服务器端,渲染,HTML,应用,Angular,客户端
From: https://www.cnblogs.com/sap-jerry/p/17829955.html

相关文章

  • Angular 应用启用服务器端渲染后 Ngrx store 和 re-hydration 的交互关系
    在Angular启用服务器端渲染(Server-SideRendering,SSR)后,当浏览器端访问这个Angular应用时,会涉及到一系列过程,包括初始化、数据获取、hydration(重新注水)和与NgRxStore之间的交互。下面我将详细介绍这些步骤:初始化应用:用户在浏览器中输入应用的URL。服务器端处理请求,生......
  • Angular 服务器端渲染应用 re-hydration 过程详解
    当使用Angular启用服务器端渲染(Server-SideRendering,以下简称SSR)时,应用程序的工作方式发生了显著变化。这使得Angular应用更加友好,不仅对搜索引擎爬虫更友好,还有助于改善应用的性能和加载时间。在本文中,我们将详细介绍在浏览器端访问启用SSR的Angular应用时背后发生的事情,特别侧......
  • 什么是 Angular 应用的 re-hydration 过程
    在讨论Angular的服务器端渲染(Server-SideRendering,简称SSR)以及重水合(Re-hydration)的过程之前,我们首先需要理解一些基本概念。Angular是一个流行的前端JavaScript框架,能够用于开发单页应用(SPA)。SPA在浏览器中加载一次,之后所有的用户交互都通过JavaScript来处理,这样能提......
  • 无涯教程-Dart - HTML DOM
    文档对象代表该窗口中显示的HTML文档,Document对象具有引用其他对象的各种属性,这些属性允许访问和修改文档内容。文档内容的访问和修改方式称为文档对象模型或DOM,对象按层次结构组织,此层次结构适用于Web文档中对象的组织。Window   -层次结构的顶部,它是对象层次结构的......
  • 如何用Angular or Vue 来 实现Dynamics 365 WebResource 开发
    第一步:构建Angular项目,可以使用VisualStudio的项目模版创建(含.netCore相关)或者使用Angularcli创建,我习惯使用angularcli 执行以下命令:ngnew项目名称,回车可以选择含路由,style是CSSorLESS根据所需选取,稍等几分钟(取决于网络,会download......
  • String.fromCharCode 函数如何在 html 输入字段中用于移动键盘
    String.fromCharCode函数用于将Unicode编码转换为对应的字符。在HTML输入字段中,您可以使用JavaScript和String.fromCharCode函数来移动键盘。以下是一个简单的示例:首先,创建一个HTML文件,包含一个输入框和一个按钮:<!DOCTYPEhtml><htmllang="en"><head><metacharse......
  • 传递参数或查询字符串给_Layout.cshtml中的顶部导航在ASP.NET中的实现方式
    在ASP.NET中,你可以通过多种方式将参数或查询字符串传递给_Layout.cshtml中的顶部导航。以下是两种常见的方法:1.使用ViewBag:ViewBag是ASP.NETMVC框架中的一个特性,它允许你在视图和控制器之间传递数据。你可以在控制器中设置ViewBag的值,然后在_Layout.cshtml中使用这些值。示例代码......
  • 如何将视频上传到可用于HTML5 <video> 标签的 'src' 属性的平台?
    要将视频上传到可用于HTML5<video>标签的'src'属性的平台,您需要遵循以下步骤:1.选择一个支持视频上传的平台,例如YouTube、Vimeo或自建服务器。2.注册并登录到所选平台。3.创建一个新的视频项目或上传您的视频文件。4.获取视频的嵌入代码或URL。这通常可以在平台的管理页......
  • HTML02(定位,浮动)
    标签独占一行的标签叫块级标签;可以在一行上展示的标签叫做内联标签;块级标签和内联标签可以切换,通过控制标签的显示方式。display:inline;将元素设置为内联元素;display:block;将元素设置为块级元素;设置容器垂直居中显示:line-height等于容器的高度.文本居......
  • HTML第一周
       ......