Angular应用prerender预渲染提高页面加载速度

 更新时间:2023年10月29日 11:36:54   作者:JerryWang_汪子熙  
这篇文章主要介绍了Angular应用prerender预渲染提高页面加载速度,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

Angular应用prerender配置

我们在某些 Angular 应用的 angular.json 文件里,能看到下面的代码:

prerender": {
          "builder": "@nguniversal/builders:prerender",
          "options": {
            "routes": ["/"]
          }
}

首先,让我们来理解上述代码的作用。这是一个在 angular.json 文件中定义的 prerender 配置,该配置是用于预渲染的设置。预渲染(Prerendering)是一种在服务端生成静态 HTML 页面的策略,这样在客户端首次加载时,可以立即显示出内容,而不需要等待 JavaScript 执行完毕。这可以提高页面的首屏加载速度,同时也有助于改善 SEO,因为搜索引擎可以直接解析静态 HTML 页面内容,而不需要执行 JavaScript。

重要部分解析

这段配置中有三个重要的部分:

  • "builder":指定了预渲染的构建器,这里使用的是 Angular Universal 提供的预渲染构建器 @nguniversal/builders:prerender。这个构建器的任务就是按照配置,生成静态 HTML 文件。
  • "options":这是预渲染的选项,提供了预渲染构建器需要的一些参数。
  • "routes":这是一个数组,指定了需要预渲染的路由列表。在这个例子中,只有一个元素:/,意味着只有根路径 / 需要被预渲染。

现在,让我们通过一个详细的例子来解释这段代码的作用。假设我们有一个 Angular 项目,它的根路径 / 对应的是首页,首页中有一些从服务器动态获取的内容,例如新闻列表。如果我们不使用预渲染,那么当用户访问首页时,浏览器首先需要下载和执行所有的 JavaScript 代码,然后 JavaScript 代码会向服务器发送请求获取新闻列表,然后再将新闻列表渲染到页面上。在这个过程中,用户需要等待一段时间才能看到新闻列表,这会影响用户体验,同时,搜索引擎也可能因为无法执行 JavaScript 而无法获取到新闻列表的内容。

为了解决这个问题,我们可以使用预渲染。通过预渲染,我们可以在服务器端先生成一个包含了新闻列表的静态 HTML 文件,然后当用户访问首页时,服务器直接返回这个静态 HTML 文件。这样,用户可以立即看到新闻列表,不需要等待 JavaScript 执行完毕。同时,搜索引擎也可以直接解析这个静态 HTML 文件,获取到新闻列表的内容。

添加配置

在这个例子中,我们可以在 angular.json 文件中添加以下配置:

`prerender`: {
  `builder`: `@nguniversal/builders:prerender`,
  `options`: {
    `routes`: [`/`]
  }
}

这样,当我们运行预渲染命令时,Angular Universal 的预渲染构建器会根据这个配置,生成一个包含了新闻列表的静态 HTML 文件。这个静态 HTML 文件会被保存在服务器上,当用户访问首页时,服务器就可以直接返回该静态页面。

以上就是Angular应用prerender机制使用讲解的详细内容,更多关于Angular应用prerender机制的资料请关注脚本之家其它相关文章!

相关文章

  • 什么是 AngularJS?AngularJS简介

    什么是 AngularJS?AngularJS简介

    这篇文章主要介绍了什么是 AngularJS?AngularJS简介,本文讲解了AngularJS方方面面的基础知识,AngularJS 是一个为动态WEB应用设计的结构框架。它能让你使用HTML作为模板语言,通过扩展HTML的语法,让你能更清楚、简洁地构建你的应用组件,需要的朋友可以参考下
    2014-12-12
  • angular6.0开发教程之如何安装angular6.0框架

    angular6.0开发教程之如何安装angular6.0框架

    这篇文章主要介绍了angular6.0开发教程之如何安装angular6.0框架,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • AngularJS实现数据列表的增加、删除和上移下移等功能实例

    AngularJS实现数据列表的增加、删除和上移下移等功能实例

    这篇文章给大家分享了AngularJS循环实现数据列表的增加、删除和上移下移等基础功能,对大家学习AngularJS具有一定的参考借鉴价值,有需要的朋友可以看看。
    2016-09-09
  • Angular实现模版驱动表单的自定义校验功能(密码确认为例)

    Angular实现模版驱动表单的自定义校验功能(密码确认为例)

    这篇文章主要介绍了Angular实现模版驱动表单的自定义校验功能(密码确认为例),本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-05-05
  • Angular实现下载安装包的功能代码分享

    Angular实现下载安装包的功能代码分享

    本文通过实例代码给大家介绍了angular实现下载安装包的功能以及基于angularjs代码实现锚点跳转的功能,需要的朋友参考下吧
    2017-09-09
  • AngularJS实现全选反选功能

    AngularJS实现全选反选功能

    这篇文章主要介绍了AngularJS实现全选反选功能,这里用到AngularJS四大特性之二----双向数据绑定,对angularjs实现全选反选相关知识感兴趣的朋友一起学习吧
    2015-12-12
  • AngularJS双向数据绑定原理之$watch、$apply和$digest的应用

    AngularJS双向数据绑定原理之$watch、$apply和$digest的应用

    这篇文章主要介绍了AngularJS双向数据绑定原理之$watch、$apply和$digest的应用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • angularjs利用directive实现移动端自定义软键盘的示例

    angularjs利用directive实现移动端自定义软键盘的示例

    下面小编就为大家带来一篇angularJS利用directive实现移动端自定义软键盘的示例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Angular自定义指令Tooltip的方法实例

    Angular自定义指令Tooltip的方法实例

    现实世界千变万化,区区几种内置指令不可能满足所有的需求,下面这篇文章主要给大家介绍了关于Angular自定义指令Tooltip的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • Angular中$compile源码分析

    Angular中$compile源码分析

    本文给大家分享的是通过angular中的$compile源码进行分析,从而更好的理解angular的使用,非常的不错,希望大家能够喜欢。
    2016-01-01

最新评论