angular - 如何从许多延迟加载模块中全局缓存功能模块状态?
问题描述
我有两个功能模块(1)用户资料和(2)博客。应用程序基于路由userprofile和blogs (1) http://localhost/userprofile和 (2) http://localhost/blogs延迟加载这些模块。当路由发生变化时,会产生调用 http 服务从服务器检索数据的效果。
我想从第二次开始阻止http调用,并在路由更改时从应用程序缓存中获取数据。如何设计用户配置文件和博客的应用程序范围缓存,以便从全局缓存中检索数据并且不进行 http 调用?
我不想在应用程序级别为用户配置文件和博客创建单个商店,因为功能模块将被其他应用程序用作库(代码重用),因此需要为这些特定功能模块提供代码。
解决方案
您可以在拨打电话之前检查商店中是否已经有东西
@Effect()
getOrder = this.actions.pipe(
ofType<GetOrder>(ActionTypes.GetOrder),
withLatestFrom(this.store.pipe(select(getOrders))),
filter(([{payload}, orders]) => !!orders[payload.orderId])
mergeMap([{payload}] => {
...
})
)
有关详细信息,请参阅我的帖子Start using ngrx/effects。
推荐阅读
- file - 根据文本文件中的字符串检查文件是否存在于具有动态名称的同一目录中?
- python - 将 python 列表值添加到输入 Flask
- c++ - C++赋值运算符,我们可以用copy来代替吗?
- java - 将布尔值传递给 Oracle DBMS 中的 JPA 本机查询
- javascript - 为什么我的按钮需要点击两次才能触发
- amazon-web-services - 如何查看 Amazon S3 存储桶上的最新日志?
- javascript - 从烧瓶服务器发送到客户端 JavaScript 不发送到发送者
- module - 如何在moodle网站中运行SCORM模块?
- java - JUnit 在没有@BeforeEach 的情况下创建一个新的类实例?
- node.js - 如何在节点 js 中使用计时器发出 api 请求?