gpt4 book ai didi

javascript - AngularJS - 在服务中存储数据?

转载 作者:行者123 更新时间:2023-12-03 08:46:21 25 4
gpt4 key购买 nike

假设我有一个调用外部 API 的用户服务

为了避免调用此 API 两次(例如,为父页面调用一次,然后为任何需要它的子元素调用一次)。

可以在服务中存储数据吗?

例如myService.userNamemyService.userID

我读到在服务中存储数据是不好的做法;这就是我问的原因

注意:我不需要保留数据。它应该在页面加载时刷新。

最佳答案

我认为在服务中缓存数据有几个优点,但是您必须了解实际发生的情况。

以下是有关服务的一些事实和信息:

  • 它们是单例,这意味着整个应用程序中只有一个实例
  • 服务始终存在(您无需显式创建它)
  • 服务可以缓存有用的数据,例如维护 View /页面的状态和/或减少发送到服务器的请求量
  • 服务可用于在不同组件(例如指令、 Controller 、其他服务等)之间交换数据
  • 可以在您需要的任何地方轻松注入(inject)服务
  • 可以在没有任何 UI 相关问题的情况下测试服务。

在某些情况下,您可能需要特别注意:

  • 如果不同的组件共享并修改相同的服务,它们可能会“搞乱”彼此的数据 - 这可能是所希望的,但也可能会产生一些副作用
  • 服务显然只会在应用程序“生存”期间进行缓存,即如果用户重新加载或重新访问页面,数据/状态就会丢失。如果您想持久保存数据,您可以将服务的数据存储在本地存储中。

我认为,如果服务具有清晰、易于理解的 API 并且不会尝试做太多事情,那么它就是好的服务。如果它可以被多个组件重用,这似乎符合您的要求。

请注意,其中一些内容是从我的 answer 复制的。在关于服务与指令的另一篇文章中。也许您可以在那里找到更多信息。

关于javascript - AngularJS - 在服务中存储数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32871949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com