【发布时间】:2013-08-21 20:35:16
【问题描述】:
在阅读了 Sencha 的一些文档后,我有点困惑。
根据我的阅读,ExtJS 在模型/存储和客户端/服务器之间放置代理。现在,假设我有一个商店需要加载可能位于本地缓存或 HTML5-LocalStorage 中的数据,如果不需要,则需要从服务器 GET。我是配置一个 single 代理来管理这个(在我看来,这是一个很好、干净、关注点分离),还是每个源单独个代理。
欢迎任何澄清
【问题讨论】:
在阅读了 Sencha 的一些文档后,我有点困惑。
根据我的阅读,ExtJS 在模型/存储和客户端/服务器之间放置代理。现在,假设我有一个商店需要加载可能位于本地缓存或 HTML5-LocalStorage 中的数据,如果不需要,则需要从服务器 GET。我是配置一个 single 代理来管理这个(在我看来,这是一个很好、干净、关注点分离),还是每个源单独个代理。
欢迎任何澄清
【问题讨论】:
可能做到这一点的最佳方法是不自动加载商店。将逻辑与代理分开。检查数据是否在本地缓存或 HTML 5 存储中。如果是,请使用loadData 加载该数据。如果两者都不是,请告诉商店自行加载,因此,使用商店上设置的代理。这意味着您将只有 1 个商店和 1 个代理。
if (dataIsInLocalCache) {
store.loadData(dataFromLocalCache);
} else if (dataisInHTML5Storage) {
store.loadData(dataFromHTMLStorage);
} else {
store.load();
}
【讨论】: