【发布时间】:2013-01-26 16:36:55
【问题描述】:
我有一个关于使用 Ember 加载和缓存远程对象的问题。我正在开发一个通过 REST API 使用服务器端存储的 Ember 应用程序。某些获取的数据很少更改,因此每次应用程序加载时都从服务器获取数据是不必要的。但这对于需要离线工作并仍将其数据保存到服务器的应用程序来说也是一个问题。
Ember Data 有一个内置的存储适配器,用于通过 REST API 持久化模型,还有an adapter for Local Storage(正如下面的 Ken 指出的那样)。问题(如果是问题的话)是一个模型只有一个存储适配器,除了将它们保存在内存中之外,似乎没有任何缓存获取的模型的概念。
我在 Ember wishlist 和 talk by Tom Dale 的 cmets 中发现了类似的请求,但我没有发现任何迹象表明这将是 Ember 中的现有功能。
我有两个问题(第一个很重要):
- 今天,在本地存储中实现缓存模型并根据需要将它们与远程数据同步的最佳方式是什么?
- 这是计划包含在 Ember 中的功能,还是至少维护者认为最终应该添加的功能?
谈到 1),我可以想到几个策略:
a) 扩展现有适配器并添加自定义远程同步机制:
App.Store.registerAdapter('App.Post', DS.LSAdapter.extend({
// do stuff when stuff happens
}));
b) 维护单独的模型类——一组用于远程对象,一组用于本地对象——并根据需要在它们之间进行同步。使用标准 Todo 案例:
RemoteTodo –*sync*– Todo
|
UI
我有点希望这是一个真正的菜鸟问题,并且有一个很好的既定模式。
更新:找到this similar question。它有一个很好的答案,但它是一种理论上的。我想我需要的是一些实用技巧或示例实现的指针。
【问题讨论】:
标签: ember.js ember-data