在 ExtJS 中使用代理

Posted

技术标签:

【中文标题】在 ExtJS 中使用代理【英文标题】:Use of Proxies in ExtJS 【发布时间】:2013-08-21 20:35:16 【问题描述】:

在阅读了 Sencha 的一些文档后,我有点困惑。

根据我的阅读,ExtJS 在模型/存储和客户端/服务器之间放置代理。现在,假设我有一个商店需要加载可能位于本地缓存或 html5-LocalStorage 中的数据,如果不需要,则需要从服务器 GET。我是配置一个 single 代理来管理这个(在我看来,这是一个很好、干净、关注点分离),还是每个源单独个代理。

欢迎任何澄清

【问题讨论】:

【参考方案1】:

可能做到这一点的最佳方法是不自动加载商店。将逻辑与代理分开。检查数据是否在本地缓存或 HTML 5 存储中。如果是,请使用loadData 加载该数据。如果两者都不是,请告诉商店自行加载,因此,使用商店上设置的代理。这意味着您将只有 1 个商店和 1 个代理。

if (dataIsInLocalCache) 
    store.loadData(dataFromLocalCache);
 else if (dataisInHTML5Storage) 
    store.loadData(dataFromHTMLStorage);
 else 
    store.load();

【讨论】:

杰夫,感谢您的回复!看起来是个好主意。从设计角度来看,这个逻辑应该在哪里?在控制器和商店之间? 这就是我要放的地方。

以上是关于在 ExtJS 中使用代理的主要内容,如果未能解决你的问题,请参考以下文章

ExtJS - 如何使用代理,模型?它们有啥关系?

如何在extjs中使用内存代理执行checkboxmodel的selectAll操作

如何在 C# 后端使用 EXTJS 代理参数?

ExtJS 4 使用模型代理提交表单

ExtJS 4:使用代理加载的数据存储显示 0 长度

ExtJS:在局部变量中获取代理帖子的响应