由组件加载的缓存数据

已完成

性能是出色应用的关键特征之一。 应用最初需要一些时间来加载其数据是可以接受的。 但若要使人感觉速度很快,应用必须将最初需要检索的数据量降低到最少。 此外,在应用检索其数据后,需要在合理的时间内缓存数据,使其保持最新。

例如,假设要在应用中显示一个人的相关信息:

Microsoft Graph 工具包人员组件的屏幕截图,其中显示了一个人员的相关信息。

若要显示此信息,需要调用 Microsoft Graph 三次。 首先,要检索此人的相关信息,然后检索其图片,最后检索其状态。

现在,假设你希望显示的不是一个人的信息,而是五个人的信息。 应用就需要运行 15 次请求。 如果需要在应用的多个位置显示用户的相关信息(例如显示邮件、文件作者或会议与会者),则可能会调用已检索的数据。

为了避免加载已有的数据,可以考虑构建自定义缓存机制。 但在这么做之前,请考虑改用 Microsoft Graph 工具包。

为 Microsoft Graph 工具包组件配置缓存。

Microsoft Graph 工具包组件会自动缓存它们检索的数据。 如果应用中需要特定信息,则仅下载一次,并存储在缓存中,直到过期。 默认情况下,Microsoft Graph 工具包会将数据缓存 1 小时。 有关用户状态的信息仅缓存 5 分钟,因为状态往往经常更改。

可以全局控制缓存,但也可以根据需要覆盖特定工作负载的配置。 缓存设置通过 CacheService 类公开。

若要更改所有组件的缓存持续时间,请更改 defaultInvalidationPeriod 属性的值:

import { CacheService } from '@microsoft/mgt';

// set cache expiration for all components to 30 minutes
CacheService.config.defaultInvalidationPeriod = 1800000;

注意

如果从内容交付网络加载 Microsoft Graph 工具包,则可以通过全局mgt变量访问CacheService配置,如下所示:

<script src="https://unpkg.com/@microsoft/mgt@3/dist/bundle/mgt-loader.js"></script>
<script>
  mgt.CacheService.config.defaultInvalidationPeriod = 1800000;
</script>

若要禁用所有组件的缓存,请将 isEnabled 属性设置为 false

import { CacheService } from '@microsoft/mgt';

// disable cache for all Microsoft Graph Toolkit components
CacheService.config.isEnabled = false;

重要

如果禁用 Microsoft Graph 工具包中所有组件的缓存,则应用可能会从 Microsoft Graph 中多次下载相同的数据。 这将对应用程序的性能产生负面影响。

若要禁止组件缓存人员数据,请将人员缓存的 isEnabled 属性设置为 false

import { CacheService } from '@microsoft/mgt';

// disable people cache for all Microsoft Graph Toolkit components
CacheService.config.people.isEnabled = false;

为 mgt-get 组件配置缓存

Microsoft Graph 工具包组件对每个工作负荷(例如人员、照片或组)缓存其数据。 这种缓存组织允许一个组件加载数据,其他组件从缓存中检索数据,而无需运行重复的请求。 工作方式不同的唯一组件是 mgt-get

使用 mgt-get 组件,可以在应用中加载和显示 Microsoft Graph 中的任何数据。 由于 mgt-get 可以显示任意数据,因此它自己的缓存名为 响应。 与任何其他缓存对象一样,可以配置 响应 缓存是否已启用,以及它应保留数据的时间。 Microsoft Graph 工具包中的其他任何组件都不使用 响应 缓存。

后续步骤

让我们将所学知识付诸实践,并更改 Microsoft Graph 工具包组件的配置设置。