【问题标题】:what's basic difference between JsonStore and JsonReader in context to Ext.data?JsonStore 和 JsonReader 在 Ext.data 的上下文中的基本区别是什么?
【发布时间】:2010-01-25 07:00:42
【问题描述】:

JsonStore 和 JsonReader 在 Ext.data 上下文中的基本区别是什么?

我的意思是我什么时候应该使用 JsonStore,什么时候应该使用 JsonReader,因为对我来说两者都提供相同的解决方案。

【问题讨论】:

    标签: json extjs jsonreader


    【解决方案1】:

    实际上它们是两个不同的东西。 Ext.data.JsonReader 读取给定的 JSON 对象并返回数据记录(Ext.data.Record 对象),这些记录随后由相应的数据存储存储。

    Ext.data.Store 是所有 Ext 存储的基类,它使用辅助对象来检索数据 (Ext.data.DataProxy)、写入数据 (Ext.data.DataWriter) 和读取数据 (Ext.data.DataReader)。这些基类有不同的风格,例如:

    这一切都建立了一个非常可扩展的组件,允许开发人员准确配置他需要调整的内容。为了让开发人员(尤其是新开发人员)更容易,Ext 带有一些预配置的数据存储:

    所以实际上Ext.data.JsonStore 只是一个方便类,使开发人员更容易。

    以下两个 sn-ps 将创建相同(或可比较)的商店:

    var store = new Ext.data.JsonStore({
        url: 'get-images.php',
        root: 'images',
        idProperty: 'name',
        fields: ['name', 'url', {name:'size', type: 'float'}, {name:'lastmod', type:'date'}]
    });
    
    // or 
    
    var store = new Ext.data.Store({
        url: 'get-images.php',
        reader: new Ext.data.JsonReader({
            root: 'images',
            idProperty: 'name',
            fields: ['name', 'url', {name:'size', type: 'float'}, {name:'lastmod', type:'date'}]
        });
    });
    

    【讨论】:

      【解决方案2】:

      JsonReader 将 JSON 从数据源读取到 Ext Store。 JsonData 不是一个专门定义的 Ext 对象,尽管您可能已经将它视为一个变量名?您在什么情况下使用它?

      【讨论】:

      • 这里是一个例子,使用阅读器的例子 var store = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ url: '/db?cmd=list' }),阅读器:新的 Ext.data.JsonReader( {root: 'row', fields:['name']} ) });存储.load(); JsonStore 示例二 var store = new Ext.data.JsonStore({ url: '/db?cmd=list', root: 'row', fields: ['name'] }); store.load();
      • 作为一个注释,您最初询问 JsonReader 和 JsonData 之间的区别,这显然是一个错字,因为您已经编辑了您的问题以更改它(没有注意到它) .只是想澄清一下,以便我的回答看起来不那么随意。正如 Stefan 下面解释的那样,JsonStore 是一个便利类。如果您通过 HTTP 加载 JSON,它只是为您节省了一些配置工作,但它相当于使用 JsonReader 和 HttpProxy。
      猜你喜欢
      • 2011-03-01
      • 2020-01-21
      • 2013-09-24
      • 2015-10-21
      • 2010-11-10
      • 2013-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多