EXT中Store加载流程

 EXT中所有和数据相关的类都放在Ext.data命名空间下。

    * Store:        最主要的对外交互接口,内部保存了一个数据集。
      JsonStore
      JsonReader    把代理读取的数据读入数据集。  
    * Record:       数据集里面的每一条记录。
    * DataField:    定义了记录每个字段的schema。
    * DataProxy:    获取数据的代理。
      ScriptTagProxy
      HttpProxy,
    * DataReader:   把代理读取的数据读入数据集。

 Store的实现
     内部用一个Ext.util.MixedCollection(既能够作为map进行索引,又能够作为list进行索引,并且更新数据时会触发事件,并且有一些其它功能的数据结构)作为数据集存放record。store实例的data域指向这个数据集。
   通过proxy加载不同来源的数据,如http remote,memory data等等。
   由于proxy加载过来的数据是异构的,所以通过不同DataReader的实现类来读入数据成为record。

    当调用load方法时候,就会委托proxy去加载数据。
    在data数据集中数据的数据,添加,修改,删除的时候触发事件。
Store数据加载流程简介
(1)实例化一个Proxy的实现proxy。
(2)实例化一个DataReader的实现reader。
(3)实例化一个Store对象store。设置store的proxy与reader。
(4)监听store的load事件或者datachange事件。
(5)调用store.load()
(6)store.load会调用proxy的load方法来加载数据(各种DataSource)。并且把reader作为参数传入。
(7)proxy的load方法加载完数据之后,调用传入的reader的read方法,并且把数据作为参数传入。
(8)reader的read方法把异构数据读入成record数据集。
(9)proxy把reader.read方法生成的record数据集作为参数,回调store。
(10)store把数据集添加到或者替换原来的数据集。
(11)触发load事件,触发datachange事件。

你可能感兴趣的:(数据结构,ext)