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机制的资料请关注脚本之家其它相关文章!

相关文章

  • Angular 项目实现国际化的方法

    Angular 项目实现国际化的方法

    本篇文章主要介绍了Angular 项目实现国际化的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧<BR>
    2018-01-01
  • angular1配合gulp和bower的使用教程

    angular1配合gulp和bower的使用教程

    这篇文章主要介绍了angular1配合gulp和bower使用教程,本文给大家介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下
    2018-01-01
  • angularjs实现首页轮播图效果

    angularjs实现首页轮播图效果

    这篇文章主要为大家详细介绍了angularjs实现首页轮播图效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • angularjs实现时间轴效果的示例代码

    angularjs实现时间轴效果的示例代码

    本篇文章主要介绍了angularjs实现时间轴效果的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • 解决Angular.js中使用Swiper插件不能滑动的问题

    解决Angular.js中使用Swiper插件不能滑动的问题

    下面小编就为大家分享一篇解决Angular.js中使用Swiper插件不能滑动的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • 详解如何在angular2中获取节点

    详解如何在angular2中获取节点

    本篇文章主要介绍了如何在angular2中获取节点,详细的介绍了几种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Angular简单验证功能示例

    Angular简单验证功能示例

    这篇文章主要介绍了Angular简单验证功能,涉及AngularJS事件响应、正则判定、页面元素属性动态修改等相关操作技巧,需要的朋友可以参考下
    2017-12-12
  • 详解angularJS+Ionic移动端图片上传的解决办法

    详解angularJS+Ionic移动端图片上传的解决办法

    本篇文章主要介绍了详解angularJS+Ionic移动端图片上传的解决办法 ,具有一定的参考价值,有需要的可以了解一下
    2017-09-09
  • angular8和ngrx8结合使用的步骤介绍

    angular8和ngrx8结合使用的步骤介绍

    这篇文章主要给大家介绍了关于angular8和ngrx8结合使用的详细步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用angular8具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-12-12
  • 深究AngularJS如何获取input的焦点(自定义指令)

    深究AngularJS如何获取input的焦点(自定义指令)

    本篇文章主要介绍了AngularJS如何获取input的焦点(自定义指令),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06

最新评论