MiniUI treeGrid 树节点展开和不展开的性能差别很大

参考API:

http://miniui.com/docs/api/index.html#ui=datagrid

http://miniui.com/docs/api/index.html#ui=treegrid

Mini所有节点配置数据方式(集合数组——没有构造成树的数据结构):

1.1. MiniUI测试树结构全部加载效率测试-8s左右

1.2. MiniUI测试树结构全部加载仅展开根节点-150ms左右

1.2.3实现HTML示例代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>TreeGrid 树形表格</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" /><link href="../demo.css" rel="stylesheet" type="text/css" />

    <script src="../../scripts/boot.js" type="text/javascript"></script>

</head>
<body>
    <h1>TreeGrid 巡护员树测试</h1>
    <input type="button" value="测试" onclick="reload()"/>
<div id="treegrid1" class="mini-treegrid" style="width:100%;height:580px;"
    url="../data/xht_tree.json"  showTreeIcon="false"
    treeColumn="taskname" idField="id" parentField="parentId" resultAsTree="false"
    allowResize="true" expandOnLoad="false"
>
    <div property="columns">
        <div type="indexcolumn"></div>
        <div name="taskname" field="name" width="160" >巡护员</div>
        <div field="value" width="80">操作</div>
    </div>
</div>
 <script type="text/javascript">
       function reload(){
           mini.parse();

           var treegrid = mini.get("treegrid1");
           treegrid.url="../data/xht_tree.json?res="+Math.random();
           var start=new Date().getTime();
           console.info("reload....");
           treegrid.loading();
           treegrid.load();
           var node=treegrid.getRow(0);
           treegrid.expandNode(node);
           treegrid.unmask();
           var end=new Date().getTime();
           console.info("completed time:"+(end-start)+"ms");
       }

  </script>

</body>
</html>

异步加载方式参考:http://www.blogjava.net/grid/archive/2012/12/13/392948.html

原文地址:https://www.cnblogs.com/boonya/p/10986171.html

时间: 2024-10-18 13:01:10

MiniUI treeGrid 树节点展开和不展开的性能差别很大的相关文章

ExtJS6 TreePanel树节点合上展开显示不同图标

TreePanel的节点如包含子节点,可在展开/合上时显示不同的图标,增强客户端效果,提高用户体验.非常简单,使用TreePanel的两个事件:beforeitemexpand和beforeitemcollapse. Ext.define('MyTreePanel_cls', { extend: 'Ext.tree.Panel', height: 400, width: 300, store: mTreeStore, tbar: Ext.create('TreeToolbarCls'), lis

extjs4.0 treepanel节点的选中、展开! 数据的重新加载

1.extjs4.0API较3.0有非常大变化2.多级子父节点的选中和展开.3.数据的重新加载.tree.getStore().load4.节点的移除,从树中根据ID获取节点 tree.getStore().getNodeById();5.获取选中的节点,tree.getView().getChecked();6.数据为异步加载,设置节点选中,tree.getStore().getNodeById('').set({checked:true}); <script type="text/ja

ext 树节点操作

ext 树节点操作 tree :树    node:节点 1.全部展开 tree.expandAll(); 2.全部收缩 tree.collapseAll(); 3.得到父节点 node.parentNode 4.判断是否有父节点 node.parentNode==null 5.判断是否有子节点 node.hasChildNodes() 6.获取下一级所有子节点 node.eachChild(function(child) { }) 7.获取选择的节点 tree.getSelectionMode

ExtJs 4.2 treePanel 点击树节点 传送参数到后台(多个参数)

//***********************************************左边树开始*********************************************** //分组树Store var treeStore = Ext.create('Ext.data.TreeStore', { proxy: { type: 'ajax', url: "/Handler/StorePositionLayoutHandler.ashx?func=getbystores

MVC 树节点Table格式授权

这几夜心里颇不平静, 奈何 JS水平有限,前台效果耗时四天,后台传值一天,直至昨夜丑时测试初步完成,其实就是一个给tree来授权,网上开源的插件很多,如treejs.easyui 等等,只是这里授权稍有不同,如下图,只能放在Table中去实现.一行一行的写js,最后写的差不多有个100多行. 项目原界面不方便截图,这里随手写个原生态的 Demo 如图所示,首先这是一个Table,无论枝节点还是叶节点都作为一行(tr),功能菜单列表中叶节点(无分支) 后对应新增.修改等六个功能(复选框) 先来说说

MiniUI treeGrid 动态加载数据与静态加载数据的区别

说明:treegrid静态数据加载时数据结构是一棵树包含children节点集合,而采用动态加载数据时数据是List结构的具体项. 静态加载数据 test1.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="ht

树节点

private void zimulu(TreeNode node)//在点开节点的一瞬间,解析当前目录的第三级目录 { try//对错误或者权限不作处理 { //根据获得的完整目录得到该目录下的子目录 foreach (var dirinfor in new DirectoryInfo(node.Tag.ToString()).GetDirectories()) { //依据目录的完整目录获取其子目录,否则找不到文件 //以子目录的文件名为名称创建树节点 var n = new TreeNod

boost库使用:仿SGI-STL实现的一个树节点内存allocator

1 ////////////////////////////////////////////////////////////////////////// 2 //code by hzs 3 //email: [email protected] 4 //Last modified: 2014-5-18 21:05 5 ////////////////////////////////////////////////////////////////////////// 6 7 #ifndef _TRE

找树节点在二叉树中的深度

/* *pRoot接收要检索的树的根节点,pNode是要确认深度的结点 path存储从根结点到pNode的所有节点,包括了pNode和根节点 */ void findPath(BinaryTreeNode *pRoot, BinaryTreeNode *pNode, vector<int> &path){ if (pRoot == NULL) return; path.push_back(pRoot->m_nValue); if (pRoot == pNode){ //找到了节点