Javascript 我如何给余烬数据模型一个TTL,并在到期后重新加载它?

Javascript 我如何给余烬数据模型一个TTL,并在到期后重新加载它?,javascript,ember.js,ember-data,Javascript,Ember.js,Ember Data,如果应用程序的使用时间较长,且多个用户对同一数据进行操作,则一个用户在其本地缓存中拥有的内容可能不再存在 例如,用户可能会查看带有注释的帖子,这些注释作为帖子下的嵌套数据加载。这意味着他将只在开始时使用GET/posts/1执行一个请求,但在这之后,post将始终从缓存中加载 但如果其他用户发表评论,他将永远不会发现,除非他重新加载整个页面,这将重置身份图 有没有办法让数据在一段时间后过期,例如每5分钟强制重新加载一次?或者我还有别的办法来解决这个问题吗?< /强> 编辑:到目前为止,实际上没

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

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

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

有没有办法让数据在一段时间后过期,例如每5分钟强制重新加载一次?或者我还有别的办法来解决这个问题吗?< /强>


编辑:到目前为止,实际上没有任何方法可以做到这一点。我已经创建了一个,并一直在努力,完成后将结果作为答案发布在这里。

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

使用
setInterval
()重新加载它。也许你可以在路由器上设置。进入路由器时,设置一个间隔,每5分钟重新加载一次模型(可能只有在模型处于特定状态时)。退出路由时,请清除间隔。

“但在此之后,帖子将始终从缓存加载。”-为什么?@Tomalak,因为ember使用身份映射在客户端“缓存”内容。这样,它就不必在每次您通过ID请求记录时都执行请求。我明白了。。。不幸的是,我没有资格回答这个问题。当我不知道从哪里加载模型时,这对场景不起作用。仅当手动连接插座时,才能执行此操作。但是,如果数据是通过hasMany relation之类的方式加载的,则不能指定
setInterval
来重新加载数据。