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

标签 json extjs jsonreader

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

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

最佳答案

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

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

  • Ext.data.DataProxy :
  • Ext.data.DirectProxy
  • Ext.data.HttpProxy
  • Ext.data.MemoryProxy
  • Ext.data.ScriptTagProxy
  • Ext.data.DataWriter
  • Ext.data.JsonWriter
  • Ext.data.XmlWriter
  • Ext.data.DataReader
  • Ext.data.JsonReader
  • Ext.data.XmlReader

  • 这一切构成了一个非常可扩展的组件,允许开发人员准确配置他需要调整的内容。为了让开发人员(尤其是新开发人员)更容易使用 Ext 附带了一些预配置的数据存储:
  • Ext.data.ArrayStore 使读取简单的 Javascript 数组更容易
  • Ext.data.DirectStore ,只是一个预先配置了 Ext.data.DirectProxy 的商店和一个 Ext.data.JsonReader
  • Ext.data.JsonStore ,只是一个预先配置了 Ext.data.JsonReader 的商店
  • Ext.data.XmlStore ,只是一个预先配置了 Ext.data.XmlReader 的商店

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

    以下两个片段将创建相同(或可比较)的商店:
    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'}]
        });
    });
    

    关于json - 在 Ext.data 的上下文中,JsonStore 和 JsonReader 之间的基本区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2130721/

    相关文章:

    javascript - 使用 jQuery 附加到替换的元素

    sencha-touch - 从面板中删除监听器

    ExtJs 4.1 TreeGrid 通过列标题过滤

    android - GSON:END_OBJECT 永远不会被调用

    javascript - JQGrid 不改变页面

    android - 如何使用 JsonReader 跳过不需要的值?

    json - 如何使用Postman在Elasticsearch中映射列(非法参数异常)

    json - 检查 json 数组长度而不解码

    json - 从 Assets 导入 Json 文件 - Angular Production Build 问题

    javascript - ExtJS 过滤组合框存储