AngularJS缓存批处理实体GET到单个实体服务



所以我有一个端点,它并行返回许多实体的内容。

我有一个共享服务,它调用这个端点并将它们放入共享的$cacheFactory中。

GET /base_entity/<id>/all路由首先命中时,GET /entity/<id>应返回缓存的副本。

告诉GET /entity/<id>服务在GET /base_entity/<id>/all有机会完成之前不要执行HTTP获取的最佳实践是什么?

$broadcast/$emit的方法似乎很奇怪。我想我可以使用与cache.put('START /all for ID:' +, id)cache.put('FIN /all for ID:' +, id)共享的$cacheFactory,但不确定这是否是解决问题的奇怪方法。

最终创建了一个新的视图和控制器。控制器的constructor调用GET /base_entity/<id>/all并缓存它,然后执行沿着当前$stateParams传递的$state.go。同时,该视图显示了加载directive的闪亮图形。

现在,当/entity/<id>状态转换为时,服务首先检查ALL缓存;相应地更新其缓存;然后检查缓存并在$q承诺中返回该缓存,或者以其他方式命中$http

最新更新