通知有关服务器更改的ember-data

Ton*_*oni 6 ruby-on-rails websocket ember.js ember-data ruby-on-rails-4

我目前正在计划在rails和ember.js上使用ruby的复杂应用程序.到目前为止,我所看到的关于ember-data的是它自动缓存记录; post.comments将首先导致Ajax调用以获取给定帖子的所有注释,但如果用户下次访问相同的路由,它将只从存储缓存中获取记录.

问题是:如果其他用户在此帖子中添加评论怎么办?如何告诉ember它必须重新加载其缓存,因为一些事情发生了变化?

我已经考虑过使用websockets来告诉客户重新加载哪些东西的解决方案 - 但我不认为这是最好的做法.另外,我无法想象这不是一个常见的问题,所以我想知道其他开发人员正在做些什么来解决这个问题.

bme*_*ers 0

这确实是任何 Web 应用程序的常见问题,无论您使用什么框架。从我的角度来看,有两个主要选择。一:您有一项服务会轮询服务器以检查是否有任何更改需要您重新加载某些模型,让该服务返回这些模型 ID 并刷新它们。另一种选择是按照您的建议,使用 websocket 并推送模型更改/新模型本身的通知。

我实际上会选择只发送评论模型本身,并将其推送到 Ember 存储和关联的帖子对象中。这将减少通过硬刷新模型来访问服务器的需要。我目前在我的 Ember 应用程序中使用此方法,其中有一个对象包含基于我的应用程序中所有模型的概述数据,当后端发生更改时,我的 websocket 服务器会将新的概述数据推送到我的应用程序。

更新::我的意思是这是一条评论,而不是一个答案,哦,好吧。