用于缓存JSON数据的Polymer 1.0策略

时间:2015-10-09 16:39:48

标签: polymer polymer-1.0

我正在学习聚合物。我的目标是创建一个完全独立的元素(在应用程序中进行路由,管理应用程序中不同子元素的数据需求)。我的目标是创建一个用户可以注入现有网站的单个元素。例如:

<my-app key="XXXXXXXXXX"></my-app>

'my-app'被注入现有网站。 key的值与内部web-api调用一起使用,用于检索特定于此实现的数据。

'my-app'的内部结构可能是这样的:

<dom-module id="my-app">
     <template>
          <game-list></game-list>
          <game-detail></game-detail>
          <play-game></play-game>
          <leader-board></leader-board>
     </template>
</dom-module>

'game-list'提供了用户可以玩的可能游戏列表。此处的内容取决于'key'属性的值。同样,“游戏细节”将是从“游戏列表”中选择的游戏的细节。 'play-game'是允许用户玩他们所选游戏的UI。最后,'leader-board'显示使用此应用程序的所有玩家的排名。

我需要一些有关管理每个子元素的json数据需求的策略的帮助。

  1. 缓存为“游戏列表”元素检索的游戏列表的最佳做法是什么?如果用户从“游戏列表”导航到“游戏详细信息”然后再回到“游戏列表”,我不希望随后调用Web服务来检索游戏列表。
  2. 从'游戏列表'导航到'游戏细节'将使用所选游戏的“id”更新URL(路线:'/ game-detail / 23')。我希望能够以Id为23来调用游戏细节。因此,如果他们再次回到'/ game-detail / 23',则不会调用WebAPI。但是,如果他们导航到'/ game-detail / 326',则应用程序实现326与23不同,因此它会对WebApi进行新的调用。
  3. 总结一下,缓存数据的策略/最佳实践是什么?

    我做了很多AngularJS开发,并使用Angular的服务(它们是单例)来缓存UI的数据。有没有办法与Polymer元素做类似的事情?有没有办法创建一个充当数据存储的内部机制?

    我想我可以依赖本地存储,但更喜欢某种类型的“服务”,它充当所有元素可以利用来检索其数据的资源。这个“服务”将负责向WebAPI发送请求(通过iron-ajax)并根据需要缓存数据。

    感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

在一个应用中,我使用iron-localstorage来缓存后端数据。

您可以创建自己的backend-element包装iron-localstorage并透明地处理所有元素的缓存。

此外,您还可以查看iron-meta,它使用单一模式在不同组件之间共享数据。