Angular 服务器端渲染缓存功能问题

 更新时间:2022年06月27日 09:32:55   作者:​ JerryWang_sap   ​  
这篇文章主要介绍了Angular服务器端渲染缓存功能问题,内存缓存可用于应用程序本身的渲染页面和API请求。 两种使用场合都通过开发包@ngx-ssr或cache提供

关于通过 Angular Universal 渲染出的页面源代码,我们有两种缓存方式:

  • HTTP cache

使用网络缓存时,一切都是为了在服务器上设置正确的响应标头。 它们指定缓存生存期和缓存策略。一个

例子如下:

Cache-Control: max-age = 31536000

此选项适用于未经授权的区域和存在长时间不变数据的情况。

  • In Memory cache

内存缓存可用于应用程序本身的渲染页面和 API 请求。 两种使用场合都通过开发包 @ngx-ssr/cache 提供。

将 NgxSsrCacheModule 模块添加到 AppModule 以缓存 API 请求并在浏览器中的服务器上。

maxSize 属性负责最大缓存大小。 值 50 表示缓存将包含超过 50 个来自应用程序的最后 GET 请求。

maxAge 属性负责缓存生命周期。 以毫秒为单位指定。

使用代码如下:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { NgxSsrCacheModule } from '@ngx-ssr/cache';
import { environment } from '../environments/environment';
@NgModule({
  declarations: [AppComponent],
  imports: [
    BrowserModule,
    NgxSsrCacheModule.configLruCache({ maxAge: 10 * 60_000, maxSize: 50 }),
  ],
  bootstrap: [AppComponent],
})
export class AppModule {}

例如,同一包@ngx-ssr/cache 中的所有内容都有一个子模块@ngx-ssr/cache/express。 它导入一个 withCache 函数。 该函数是渲染引擎的包装器。

使用方法如下:

import { ngExpressEngine } from '@nguniversal/express-engine';
import { LRUCache } from '@ngx-ssr/cache';
import { withCache } from '@ngx-ssr/cache/express';
server.engine(
  'html',
  withCache(
    new LRUCache({ maxAge: 10 * 60_000, maxSize: 100 }),
    ngExpressEngine({
      bootstrap: AppServerModule,
    })
  )
);

虽然可以从服务器渲染静态网站,但这种方法有很多限制,包括代码重复和缺乏灵活性——尤其是在从数据库读取数据时。 幸运的是,Express.js 提供了一种通过模板引擎从服务器端应用程序创建动态 HTML 页面的方法。

模板引擎以一种相当简单的方式工作:创建一个模板,并使用适当的语法将变量传递给它。 然后,在渲染模板的适当路径上,将值分配给模板文件中声明的变量。 这些是在模板渲染时实时编译的。

模板引擎的一个基本特征是它们允许我们创建称为部分的可重用组件,这些组件可以在其他文件中重用。 这有助于防止代码重复并使更改更易于实施。

有各种各样的模板引擎可以与 Express 一起使用。 Express 中的默认模板引擎是 Jade,现在称为 Pug。 但是,Express 中默认安装的 Jade 仍然使用旧版本。

到此这篇关于Angular 服务器端渲染缓存功能问题的文章就介绍到这了,更多相关Angular 渲染 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • js 使FORM表单的所有元素不可编辑的示例代码

    js 使FORM表单的所有元素不可编辑的示例代码

    使FORM表单的的所有元素不可编辑的方法有很多,在本文将为大家详细介绍下,js是如何做到的,感兴趣的朋友不要错过
    2013-10-10
  • 一文带你了解微信小程序数据绑定、事件绑定以及事件传参、数据同步

    一文带你了解微信小程序数据绑定、事件绑定以及事件传参、数据同步

    在微信小程序日常开发中,特定场景下我们需要事件携带参数到要执行的函数中,下面这篇文章主要给大家介绍了关于微信小程序数据绑定、事件绑定以及事件传参、数据同步的相关资料,需要的朋友可以参考下
    2022-11-11
  • JavaScript中作用域链的概念及用途讲解

    JavaScript中作用域链的概念及用途讲解

    这篇文章主要介绍了JavaScript中作用域链的概念及用途讲解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • javascript设计模式 – 装饰模式原理与应用实例分析

    javascript设计模式 – 装饰模式原理与应用实例分析

    这篇文章主要介绍了javascript设计模式 – 装饰模式,结合实例形式分析了javascript装饰模式基本概念、原理、应用场景及操作注意事项,需要的朋友可以参考下
    2020-04-04
  • ECMAScript中var let const常见问题及区别详解

    ECMAScript中var let const常见问题及区别详解

    这篇文章主要为大家介绍了ECMAScript中var let const常见问题及区别详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • JS获取表格内指定单元格html内容的方法

    JS获取表格内指定单元格html内容的方法

    这篇文章主要介绍了JS获取表格内指定单元格html内容的方法,涉及javascript中innerHTML属性的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • 一文详解JavaScript的事件监听(最新整理)

    一文详解JavaScript的事件监听(最新整理)

    Web页面需要经常和用户之间进行交互,而交互的过程中我们可能想要捕捉这个交互的过程,比如用户点击了某个按钮、用户在输入框里面输入了某个文本、用户鼠标经过了某个位置,下面介绍下JavaScript的事件监听,感兴趣的朋友一起看看吧
    2024-01-01
  • JS+CSS实现仿雅虎另类滑动门切换效果

    JS+CSS实现仿雅虎另类滑动门切换效果

    这篇文章主要介绍了JS+CSS实现仿雅虎另类滑动门切换效果,涉及JavaScript响应鼠标事件及针对页面元素的嵌套循环遍历技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • Flash图片上传组件 swfupload使用指南

    Flash图片上传组件 swfupload使用指南

    这篇文章主要介绍了Flash图片上传组件 swfupload使用方法及示例,swfupload的使用范围十分的广泛,功能也很强大,今天我们就先来简单的通过范例来学习下。
    2015-03-03
  • js实现base64、url和blob之间相互转换的三种方式

    js实现base64、url和blob之间相互转换的三种方式

    Blob对象表示一个不可变、原始数据的类文件对象,Blob表示的不一定是JavaScript原生格式的数据,下面这篇文章主要给大家介绍了关于js实现base64、url和blob之间相互转换的三种方式,需要的朋友可以参考下
    2023-04-04

最新评论