Angular 服务器端渲染的学习笔记(一)

简介: Angular 服务器端渲染的学习笔记(一)

官网链接:https://angular.io/guide/universal


Angular Universal, a technology that renders Angular applications on the server.


Angular Universal 是一种将 Angular 应用渲染于服务器平台上的技术。image.png普通的 Angular 应用在浏览器里执行,响应用户动作,并以 DOM 的方式渲染页面。image.pngimage.pngAngular Universal 执行在服务器端,生成静态的应用页面,该页面随后在客户端进行引导(bootstrap).image.png服务器端渲染通常意味着应用程序的渲染速度更加快捷,允许用户在应用能够实现正常互动之前,就有机会一窥应用的布局。


google 有一篇专门讲 SSR 技术的文章:https://developers.google.com/web/updates/2019/02/rendering-on-the-webimage.png使用 Angular CLI,可以完成一个应用支持 SSR 所需的准备工作,具体步骤通过 CLI Schematic 的 @nguniversal/express-engine 完成。image.png为了创建面向服务器端渲染的 app module, 即 app.server.module.ts, 执行下列 CLI 指令:image.png该指令会创建下列的文件结构:image.pngimage.pngimage.pngimage.pngimage.png本地使用 Universal 方式渲染应用的命令:npm run dev:ssr

image.png执行的是 package.json scripts 区块里定义的该命令:image.pngimage.png如果遇到错误消息:An unhandled exception occurred: Cannot find module ‘@nguniversal/builders/package.json’

Require stack:image.png先 npm install. 之后原始的错误消失。image.pngimage.png一个 node.js express web 服务器,基于 Universal 编译 HTML 页面。

进行了很多编译动作:image.png整个 dist 文件夹和其子文件夹都是 npm run dev:ssr 后自动生成的:image.png打开 http://localhost:4200/dashboard,看到了熟悉的 hero dashboard:image.pngimage.png基于 routerLinks 的跳转可以正常工作,因为其使用原生的 a 标签。


使用 SSR 的三大原因

Facilitate web crawlers through search engine optimization (SEO)

为了配合网络爬虫,实现搜索引擎优化。


Improve performance on mobile and low-powered devices

改善应用在移动端和低配设备上访问的性能。


Show the first page quickly with a first-contentful paint (FCP)

能够以 FCP 的方式,快速显示应用首页。image.png谷歌,Bing,Facebook 和其他社交媒体网站,都使用网络爬虫,为应用内容建立索引,以便让其内容能够在网络上被搜索到。image.png如果一个 Angular 应用具备高度的可交互性,那么网络爬虫可能很难像一个人类用户一样,采用导航的方式访问应用,并索引其内容image.pngAngular Universal 可以基于 Angular 应用,生成一个静态版本,易于被搜索,链接,以及不借助 JavaScript 进行导航。image.png同时也能让 site 预览成为可能,因为每个 url 返回的是完全渲染过后的页面。image.png有些设备不支持 JavaScript,或者支持程度很差,因此应用用户体验很难接受。image.png在这种情况下,我们需要一个服务器端渲染,不需要 JavaScript 也能运行的应用。image.png这种版本的应用,虽然功能局限,但是总比完全不能用的版本好。

Show the first page quicklyimage.png为了确保用户体验,迅速显示应用首屏页面的能力至关重要。image.png使用 Angular Universal,可以生成应用的初始页面,该页面和完整的应用相比外观上无区别,并且是纯粹的 HTML 代码,即使在 JavaScript 禁掉的浏览器上,也能正常显示。image.png页面不支持浏览器事件,但支持基于 routerLink 的 site 间导航image.png从操作层面说,我们可以提供应用初始页面的静态版本,以吸引用户的注意。




相关文章
|
1天前
|
搜索推荐 Java 索引
Java中的服务器端渲染(SSR)
Java中的服务器端渲染(SSR)
|
1天前
|
缓存 搜索推荐 Java
Java中的服务器端渲染(SSR)原理与实现
Java中的服务器端渲染(SSR)原理与实现
|
1天前
|
安全 前端开发 Java
Java中的服务器端渲染(SSR)技术深入剖析
Java中的服务器端渲染(SSR)技术深入剖析
|
26天前
|
缓存 JavaScript 前端开发
Nuxt.js实战:Vue.js的服务器端渲染框架
Nuxt.js提供了开发、构建和部署的完整工作流。使用nuxt命令启动开发服务器,nuxt build进行生产构建,nuxt start启动生产服务器
24 0
|
1月前
|
JavaScript Serverless 网络架构
Next.js与SSR:构建高性能服务器渲染应用
创建Next.js项目使用`create-next-app`,每个页面自动支持SSR。动态路由如`pages/posts/[id]`,在`getStaticPaths`和`getServerSideProps`中获取数据。利用静态优化和预渲染提升性能,动态导入减少初始加载时间。使用`next/image`优化图片,自定义服务器增加控制,集成第三方库如Redux。优化SEO,利用i18n支持多语言,使用Serverless模式和Web Workers。项目支持TypeScript,创建`_error.js`处理错误,部署到Vercel并使用工具进行性能监控和优化。
160 4
|
2月前
|
JavaScript 搜索推荐 前端开发
理解服务器端渲染(SSR):提高网页性能与SEO的秘籍
理解服务器端渲染(SSR):提高网页性能与SEO的秘籍
|
2月前
|
资源调度
在 Next.js 中使用自定义服务器框架进行服务器端渲染
在 Next.js 中使用自定义服务器框架进行服务器端渲染
Next.js 的服务器端渲染框架集成
Next.js 的服务器端渲染框架集成
|
2月前
|
JavaScript 前端开发 搜索推荐
Vue 的服务器端渲染(SSR)和客户端渲染(CSR)在渲染过程、性能、用户体验等方面都存在显著的区别
【5月更文挑战第8天】Vue 的 SSR 和 CSR 在渲染上有明显差异。SSR 服务器端生成 HTML 返回给浏览器,提供更快首屏加载和更好的 SEO,但增加服务器负担。CSR 客户端渲染,首次加载可能较慢,但交互更流畅,开发更简单。两者各有优劣,需根据项目需求权衡选择。
30 2
|
2月前
|
数据采集 资源调度 前端开发
React的服务器端渲染:使用ReactDOMServer进行高效页面预渲染
【4月更文挑战第25天】使用ReactDOMServer,React支持服务器端渲染以实现高效预渲染。通过在Node.js环境中将React组件转化为HTML字符串,减少客户端JavaScript负载和渲染时间。优点包括更快首屏加载、改善SEO和兼容无JavaScript环境,但也会增加服务器负载、复杂性和状态管理挑战。开发者需根据项目需求平衡SSR和CSR。