Easyui tree 开启拖放后 在IE下 性能惨不忍睹
项目中加载一个树结构代码如下
//加载树
function LoadTree() {
var url = "../Ajax/StationTree.ashx?showVirtual=1";
$('#tree').tree({
url: url + '&pid=0&nodetype=root',
animate: true,
dnd: true, //是否拖放功能
loadFilter: function (data) {
if (data.id) {
return data.id;
}
else {
return data;
}
},
onBeforeExpand: function (node, param) {
$('#tree').tree('options').url = url + "&pid=" + node.id + '&nodetype=' + node.attributes.nodetype; // change the url
},
onClick: function (node) {
loadData();
}
});
}
运行之后发现在Chrome下完好流畅运行,但在IE下简直惨不忍睹。
没点击一个节点响应时间都要两秒中。
仔细排查后,发现是因为开启了拖放。
禁用拖放(dnd:false) 后 性能立马上来了。
//加载树
function LoadTree() {
var url = "../Ajax/StationTree.ashx?showVirtual=1";
$('#tree').tree({
url: url + '&pid=0&nodetype=root',
animate: true,
dnd: false, //是否拖放功能
loadFilter: function (data) {
if (data.id) {
return data.id;
}
else {
return data;
}
},
onBeforeExpand: function (node, param) {
$('#tree').tree('options').url = url + "&pid=" + node.id + '&nodetype=' + node.attributes.nodetype; // change the url
},
onClick: function (node) {
loadData();
}
});
}
最后奉上easyui tree 基本属性
|
名称 |
类型 |
说明 |
默认值 |
|
url |
string |
获取远程数据的 URL 。 |
null |
|
method |
string |
获取数据的 http method 。 |
post |
|
animate |
boolean |
定义当节点展开折叠时是否显示动画效果。 |
false |
|
checkbox |
boolean |
定义是否在每个节点前边显示 checkbox 。 |
false |
|
cascadeCheck |
boolean |
定义是否级联检查。 |
true |
|
onlyLeafCheck |
boolean |
定义是否只在叶节点前显示 checkbox 。 |
false |
|
dnd |
boolean |
定义是否启用拖放。 |
false |
|
data |
array |
加载的节点数据。 |
null |
事件
很多事件的回调函数需要 'node' 函数,它包含下列特性:
- id:绑定到节点的标识值。
- text:显示的文字。
- checked:是否节点被选中。
- attributes:绑定到节点的自定义属性。
- target:目标的 DOM 对象。
|
名称 |
参数 |
说明 |
|
onClick |
node |
当用户点击一个节点时触发, node 参数包含下列特性: |
|
onDblClick |
node |
当用户双击一个节点时触发。 |
|
onBeforeLoad |
node, param |
当加载数据的请求发出前触发,返回 false 就取消加载动作。 |
|
onLoadSuccess |
node, data |
当数据加载成功时触发。 |
|
onLoadError |
arguments |
当数据加载失败时触发, arguments 参数与 jQuery.ajax 的'error' 函数一样。. |
|
onBeforeExpand |
node |
节点展开前触发,返回 false 就取消展开动作。 |
|
onExpand |
node |
当节点展开时触发。 |
|
onBeforeCollapse |
node |
节点折叠前触发,返回 false 就取消折叠动作。 |
|
onCollapse |
node |
当节点折叠时触发。 |
|
onCheck |
node, checked |
当用户点击 checkbox 时触发。 |
|
onBeforeSelect |
node |
节点被选中前触发,返回 false 就取消选择动作。 |
|
onSelect |
node |
当节点被选中时触发。 |
|
onContextMenu |
e, node |
当右键点击节点时触发。 |
|
onDrop |
target, source, point |
当节点被拖拽施放时触发。 |
|
onBeforeEdit |
node |
编辑节点前触发。 |
|
onAfterEdit |
node |
编辑节点后触发。 |
|
onCancelEdit |
node |
当取消编辑动作时触发。 |
方法
|
名称 |
参数 |
说明 |
|
options |
none |
返回树的 options。 |
|
loadData |
data |
加载树的数据。 |
|
getNode |
target |
获取指定的节点对象。 |
|
getData |
target |
获取指定的节点数据,包括它的子节点。 |
|
reload |
target |
重新加载树的数据。 |
|
getRoot |
none |
获取根节点,返回节点对象。 |
|
getRoots |
none |
获取根节点们,返回节点数组。 |
|
getParent |
target |
获取父节点, target 参数指节点的 DOM 对象。 |
|
getChildren |
target |
获取子节点, target 参数指节点的 DOM 对象。 |
|
getChecked |
none |
获取所有选中的节点。 |
|
getSelected |
none |
获取选中的节点并返回它,如果没有选中节点,就返回 null。 |
|
isLeaf |
target |
把指定的节点定义成叶节点, target 参数表示节点的 DOM 对象。 |
|
find |
id |
找到指定的节点并返回此节点对象。 |
|
select |
target |
选中一个节点, target 参数表示节点的 DOM 对象。 |
|
check |
target |
把指定节点设置为勾选。 |
|
uncheck |
target |
把指定节点设置为未勾选。 |
|
collapse |
target |
折叠一个节点, target 参数表示节点的 DOM 对象。 |
|
expand |
target |
展开一个节点, target 参数表示节点的 DOM 对象。 |
|
collapseAll |
target |
折叠所有的节点们。 |
|
expandAll |
target |
展开所有的节点们。 |
|
expandTo |
target |
从指定节点的根部展开。 |
|
append |
param |
追加一些子节点们到一个父节点, param 参数有两个特性: |
|
toggle |
target |
切换节点的展开/折叠状态, target 参数表示节点的 DOM 对象。 |
|
insert |
param |
在指定节点的前边或后边插入一个节点, param 参数包含下列特性: |
|
remove |
target |
移除一个节点和它的子节点们, target 参数表示节点的 DOM 对象。 |
|
pop |
target |
弹出一个节点和它的子节点们,此方法和 remove 一样,但是返回了移除的节点数据。 |
|
update |
param |
跟心指定的节点, param 参数有下列特性: |
|
enableDnd |
none |
启用拖放功能。 |
|
disableDnd |
none |
禁用拖放功能。 |
|
beginEdit |
nodeEl |
开始编辑节点。 |
|
endEdit |
nodeEl |
结束编辑节点。 |
|
cancelEdit |
nodeEl |
取消编辑节点。 |
Easyui tree 开启拖放后 在IE下 性能惨不忍睹的更多相关文章
- 数据网格和树-EasyUI Datagrid 数据网格、EasyUI Propertygrid 属性网格、EasyUI Tree 树、EasyUI Treegrid 树形网格
EasyUI Datagrid 数据网格 扩展自 $.fn.panel.defaults.通过 $.fn.datagrid.defaults 重写默认的 defaults. 数据网格(datagrid ...
- EasyUI Tree判断节点是否是叶
方法1: $('#domaincatalog').tree('isLeaf', node.target); 返回true或false ,true表示是叶节点, false即不是 方法2:官方文档中: ...
- easyui Tree模拟级联勾选cascadeCheck,节点选择,父节点自动选中,节点取消,父节点自动取消选择,节点选择,所有子节点全部选择,节点取消,所有子节点全部取消勾选
最近项目中用到easyui tree,发现tree控件的cascadeCheck有些坑,不像miniui 的tree控件,级联勾选符合业务需求,所以就自己重新改写了onCheck事件,符合业务需求.网 ...
- [转]easyui tree 模仿ztree 使用扁平化加载json
原文地址:http://my.oschina.net/acitiviti/blog/349377 参考文章:http://www.jeasyuicn.com/demo/treeloadfilter.h ...
- Jquery easyui tree的使用
这个ui用的一切都是json数据.树也是如此! 后台需要返回与格式匹配的json数据才能正确加载树. 页面定义一个ui: <ul id="messageInfoAddTree" ...
- EasyUI –tree、combotree学习总结
EasyUI –tree.combotree学习总结 一. tree总结 (一).tree基本使用 tree控件是web页面中将数据分层一树形结构显示的. 使用$.fn.tree.defaults ...
- IIS开启伪静态后html静态页面无法访问的解决方法
IIS开启伪静态后,发现原本存在的html静态页面无法访问了,显示的404错误.网上查了下,是因为实现伪静态就是使用 URLRewriter 来映射后缀,会把asp等动态页面映射成html,但是原来存 ...
- easyui tree 的数据格式转换
一般用来储存树数据的数据库表都含有两个整型字段:id pid,所以我们查询出来的List一般是这样的(约定pId为-1的节点为根节点): var serverList = [ {id : 2,pid ...
- 从数据库读取数据并动态生成easyui tree构结
一. 数据库表结构 二.从后台读取数据库生成easyui tree结构的树 1.TreeNode树结点类(每个结点都包含easyui tree 的基本属性信息) import java.io.Seri ...
随机推荐
- 主要协议SCSI、FC、iSCSI
一.SCSI SCSI是小型计算机系统接口(Small Computer System Interface)的简称,于1979首次提出,是为小型机研制的一种接口技术,现在已完全普及到了小型机,高低端服 ...
- QSizePolicy可均匀调整控件的大小,还可设置比例,非常完美(每个QWidget都有这个功能)
http://blog.csdn.net/liang19890820/article/details/51986284 它是QWidget的固有属性: http://doc.qt.io/qt-4.8/ ...
- bzoj1637 [Usaco2007 Mar]Balanced Lineup
Description Farmer John 决定给他的奶牛们照一张合影,他让 N (1 ≤ N ≤ 50,000) 头奶牛站成一条直线,每头牛都有它的坐标(范围: 0..1,000,000,000 ...
- Binary Tree Level Order Traversal II 解答
Question Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, ...
- linux多线程socket编程一些心得
http://hi.baidu.com/netpet/blog/item/2cc79216d9012b54f2de32b9.html 前段时间将新的web模型办到linux上来,用epoll代替了IO ...
- [置顶] think in java interview番外篇-谈程序员如何修练英语
一.程序员对英语能力的重视度和能力要求应该是在各行各业中排在比较靠前的 这样说吧,英语程度的好坏直接影响着一个程序员的编程.开发.创新能力. 道理很简单: 1. 计算机和软件是用英语创造出来的 2. ...
- 一、crond简介
crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程,cro ...
- Python re模块 正则表达式
1 简介 就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译成一系列的字节码,然后由用 C ...
- Python常用模块(time, datetime, random, os, sys, hashlib)
time模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp) : 通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运 ...
- log4net 使用与配置 每天一份log文件
1.下载 或 在nuget安装 log4net 2. web.config (app.config) <configuration> <configSections> < ...