echarts通过ajax请求展示多叉树
2024-10-01 01:11:39
背景:在sqlserver使用过程中经常由于各种原因会出现阻塞,并发数较高,很难肉眼看出那个session阻塞了其他process,通过sql查询出根源也需要大量的重复操作才能够找到。
因此就有这方面的需求来,通过session_id以及blocked_sessionid两个字段来找出阻塞根源并通过网页展示出来。
echarts拥有非常优秀的BI组件库,能够对各种数据进行各种形式的展示。
前台部分代码为:
<table>
<tr>
<td align="center"><div class="well sidebar-nav" id="tree" style="width:1000px;height:300px" ></div></td>
</tr>
</table>
为echarts画图申请一块区域
ajax请求如下:
var optiontree = {
title : {
text: '',
},
tooltip : {
trigger: 'item',
formatter: "{b}: {c}"
},
//toolbox: {
// show : true,
// feature : {
// mark : {show: true},
// dataView : {show: true, readOnly: false},
// restore : {show: true},
// saveAsImage : {show: true}
// }
//},
calculable : false, series : [
{
name:'test',
type:'tree',
orient: 'vertical', // vertical horizontal
rootLocation: {x: 'center', y: '20%'},
nodePadding: 20,
roam: true,
symbol: 'circle',
symbolSize: 40,
itemStyle: {
normal: {
label: {
show: true,
position: 'inside',
textStyle: {
color: '#000',
fontSize: 15,
fontWeight: 'bolder'
}
},
lineStyle: {
color: '#000',
width: 1,
type: 'broken' // 'curve'|'broken'|'solid'|'dotted'|'dashed'
}
},
emphasis: {
label: {
show: true
}
}
},
data: []
}
]
};
$.ajax({
type : "post",
async : false,
url : "<%=request.getContextPath()%>/manage/testjson",
data : {},
dataType : "json",
success : function(result) {
if (result) {
var arr = result[0].treedata;
var contact = JSON.parse(arr);
optiontree.series[0].data.push(contact);
var myChart = echarts.init(document.getElementById('tree'));
myChart.setOption(optiontree); }
}});
java后台代码思路如下:
1.查询出两列数据 gettreedata();
2.将这两列数据通过递归函数以及多叉树数据结构存储
treetojson()
{
iteratorfunc(......) //将数据转换成nodetree
...
...
...
deletenoblocknode() //将没有阻塞的节点删除 nodetreetraversetojson() //将树形结构转换成
// json字符串传回给jquery
}
这里需要注意的地方需要标准的json格式
{"name" : "0","children" : [{"name" : "4","children" : [{"name" : "3","children" : [{"name" : "1","children" : [{"name" : "13"}]},{"name" : "2"}]},{"name" : "5","children" : [{"name" : "6"}]},{"name" : "7","children" : [{"name" : "8"}]}]},{"name" : "11","children" : [{"name" : "12"}]}]}
最终展示如图:
对于echarts来说可以增加点击事件,点击sessionid后可再次查询出详细信息,对于解决sqlserver阻塞带来很大的方便。
对于实现有问题的同学欢迎留言!
最新文章
- MySQL索引简述
- 使用Grunt 插件打包Electron Windows应用
- 浅析敏感词过滤算法(C++)
- HTML流动布局各种宽度自适应
- [moka同学笔记]yii2场景的使用(摘录)
- json和cookie兼容以前的
- iOS边练边学--文件压缩和解压缩的第三方框架SSZipArchive的简单使用
- Fingerprinting
- jj前端项目1th总结
- 简单学习:repo入门
- 1分钟去除word文档编辑限制密码
- HTML编码
- CSS权威指南学习笔记 —— 初步认识CSS
- ZOJ 3741 Eternal Reality
- AOP 在javascript 中的使用
- html5的video标签自动播放
- Request模块—数据解析工具
- Salesforce Apex学习 : 利用Schema命名空间中的DescribeSObjectResult类型来获取sObject对象的基本信息
- luogu P1880石子归并
- JMeter学习笔记---性能分析
热门文章
- PHP rand()和mt_rand()的区别
- [Vue @Component] Switch Between Vue Components with Dynamic Components
- 【java项目实践】具体解释Ajax工作原理以及实现异步验证username是否存在+源代码下载(java版)
- UITableView和UITableViewCell的几种样式
- ios 使用第三方框架注意
- Linux VM环境配置
- C++ 訪问控制权限图解
- wepack使用
- 解析java中volatilekeyword
- TLabel和TEdit的初次显示过程