如何给Ember Data模型一个TTL并在它到期后重新加载?

时间:2012-12-22 17:00:29

标签: javascript ember.js ember-data

如果应用程序应该在多个用户对相同数据进行操作的较长时间内使用,则可能会发生用户在其本地缓存中所拥有的内容不再存在。

例如,用户可能会查看带有评论的帖子,这些评论作为帖子下的嵌套数据加载。这意味着他将在GET /posts/1开头只做一个请求,但之后,帖子将始终从缓存中加载。

但如果其他用户发表评论,他将永远不会发现,除非他重新加载整个页面,这将重置身份地图。

有一段时间我可以将数据过期,强制它重新加载,例如每5分钟一次吗?或者是否有其他方法可以考虑解决此问题?

编辑:到目前为止,实际上没有办法做到这一点。我创建了一个pull request并继续处理它并在结束时将结果作为答案发布。

2 个答案:

答案 0 :(得分:0)

使用websockets是一个更好的解决方案。不幸的是,目前还没有适用于Ember数据的websockets适配器。

答案 1 :(得分:0)

使用setIntervaldocumentation)重新加载它。也许你可以在路由器中设置它。进入路由器时,设置每5分钟重新加载模型的间隔(可能仅在它处于特定状态时)。退出路线时,请清除间隔。