WEB开发网
开发学院软件开发Java 提高 Dojo Grid 的数据处理性能 阅读

提高 Dojo Grid 的数据处理性能

 2010-05-24 00:00:00 来源:WEB开发网   
核心提示: Store 的数据存储在两个 json 数组中,名字分别为 _arrayOfAllItems 和 _arrayOfTopLevelItems,提高 Dojo Grid 的数据处理性能(4),这两个数组的区别是在于前者记录了 Grid 创建以来 Store 中存在过的所有变量, 后者中只是存储 S

Store 的数据存储在两个 json 数组中,名字分别为 _arrayOfAllItems 和 _arrayOfTopLevelItems。这两个数组的区别是在于前者记录了 Grid 创建以来 Store 中存在过的所有变量, 后者中只是存储 Store 当前的所有 Item。如果有变量被删除,则 _arrayOfAllItems 中该数组变量设为 null,而 _arrayOfTopLevelItems 中该数组变量会被彻底删除, 数组个数减一。这样的设定是为了在 Store.newItem 的时候,如果用户没有为 Store 指定 identifier,Store 可以自动地用 _arrayOfAllItems 的数量值为新 Item 创建 identifier。_arrayOfAllItems 的个数不会因为删除操作而减少,也就不必担心新 Item 的 identifier 就会发生重复。

程序清单 3 中描述了 Grid 自动创建 identifier 的过程,首先程序会尝试去获得之前定义的 Identifier 属性。如果属性是 Number 就把 _arrayOfAllItems.length 赋给 newIdentity。如果属性不是 Number, 就把 identifierAttribute 对应的 keywordArgs 赋给 newIdentity,如果 newIdentity 是空,就表示 identity 创建失败。

清单 3. Grid identifier 的创建

 
 var newIdentity = null; 
 var identifierAttribute = this._getIdentifierAttribute(); 
 if(identifierAttribute === Number){ 
 newIdentity = this._arrayOfAllItems.length; 
 } 
 else{ 
 newIdentity = keywordArgs[identifierAttribute]; 
 if (typeof newIdentity === "undefined"){ 
 throw new Error("newItem() was not passed an identity for the new Item"); 
 } 
 } 

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:提高 Dojo Grid

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接