我有一个关于使用Ember加载和缓存远程对象的问题.我正在开发一个Ember应用程序,它通过REST API使用服务器端存储.某些获取的数据很少更改,因此每次加载应用程序时都不需要从服务器获取数据.但这也是需要脱机工作并仍然将其数据保存到服务器的应用程序的问题.
Ember Data有一个内置的存储适配器,用于通过REST API保持模型,还有一个适用于本地存储的适配器(如下面Ken所指出的).问题(如果它是一个问题)是一个模型只有一个存储适配器,似乎没有任何缓存提取模型的概念,除了将它们保留在内存中.
我在这个Ember愿望清单和Tom Dale对此演讲的评论中发现了类似的请求,但我没有发现任何迹象表明这将是Ember的现有功能.
我有两个问题(第一个是重要问题):
谈到1),我可以想到几个策略:
a)扩展现有适配器并添加自定义远程同步机制:
App.Store.registerAdapter('App.Post', DS.LSAdapter.extend({
// do stuff when stuff happens
}));
Run Code Online (Sandbox Code Playgroud)
b)维护单独的模型类 - 一组用于远程对象,一组用于本地对象 - 并根据需要在它们之间进行同步.使用标准Todo案例:
RemoteTodo –*sync*– Todo
|
UI
Run Code Online (Sandbox Code Playgroud)
我有点希望这是一个真正的菜鸟问题,并且有一个很好的既定模式.
更新:发现了类似的问题.它有一个很好的答案,但它是理论上的.我认为我需要的是一些动手技巧或示例实现的指针.