作者原创,未经博主允许,不可转载

在前面分析和讲解了用java代码分别实现饼状图和折线图,在工作当中,也会遇到很多用ajax进行异步请求

实现highchart。

先展示一下实现的效果图:

用ajax请求获取数据库后台数据,可以实现异步刷新的效果,其主要实现放在了js代码,即客户端实现请求,

这样可以减轻服务器端的压力。

先展示js处代码:

<!-- 播放统计柱型折线图 -->
<script type="text/javascript">
var chart;
$(function(){
$.ajax({
type:"post",
cache: false,
async: false,
url:"<%=basePath%>personSpace/showPlayer",
success:function(data){
var data=eval(data);
if(data.hasData>0){
showBroadColumData(data);
}else{
$("#playStatistic").attr("src","images/playStatistic.png")
var left=($(window).width()-1000)/2+"px";
$("#playStatistic").css("margin-left",left);
}
}
});
}); function showBroadColumData(data){
var xCategory=[];
var yData=[];
var demandData=[];
var splineData=[];
for(var i=0;i<data.playCountInfo.length;i++){
xCategory.push(data.playCountInfo[i].yearMonth);
yData.push(parseInt(data.playCountInfo[i].livePlayCount));
demandData.push(parseInt(data.playCountInfo[i].vodPlayCount));
splineData.push(parseInt(data.playCountInfo[i].count));
}
chart = new Highcharts.Chart({
chart:{
renderTo:'broadColum'
},
title:{
text:'播放统计',
style:{
color:'#000',
fontSize:'18px',
fontFamily:"微软雅黑"
}
},
credits:{
enabled:false
},
xAxis:[{
categories:xCategory,
lineWidth:2,//自定义x轴宽度
title: {
text: '播放时间',
style:{
color:'black',
fontSize:'14px',
fontFamily:"宋体"
}
},
style:{
color:"#4572A7"
}
}],
yAxis:[{
tickInterval:50,
labels:{
style:{
color:"#4572A7"
}
},
title:{
text: '播放次数',
style:{
color:'black',
fontSize:'14px',
fontFamily:"宋体"
}
}
}],
legend:{
shadow:true,
layout:"horizontal"
},
series:[{
name:'直播',
type:"column",
data:yData,
color:Highcharts.getOptions().colors[3]
},{
name:'点播',
type:"column",
data:demandData,
color:Highcharts.getOptions().colors[7]
},{
name:'总播放次数',
type:"spline",
data:splineData,
marker: {
lineWidth: 2,
lineColor: Highcharts.getOptions().colors[4],
fillColor: 'white'
},
color:Highcharts.getOptions().colors[5]
}]
});
}
</script>

其实现的思路为:先用ajax请求后台数据,从后台查询获取一个map的集合,然后将map中集合的数据遍历出来,将所需要的数据分别放入

不同的数组当中。,然后再将数组放入highchart插件当中。

此处展示java后台主要代码:

@ResponseBody
    @RequestMapping(value = "/showPlayer", method = {RequestMethod.GET, RequestMethod.POST})
    public Map<String, Object> showPlayerStatisticToBroad(HttpServletRequest request) {
        List<PlayerStatisticsInfo> playerStatisticsInfos = new ArrayList<PlayerStatisticsInfo>();
        playerStatisticsInfos = playerStatisticService.qryPlayCountInfo(getSessionInfo(request).getUserId()); //查询数据集合
        Map<String, Object> map = new LinkedHashMap<String, Object>();//选择用map集合可以实现键值对形式,通过键值对的形式取得想要的数据和对象
        if (CollectionUtils.isNotEmpty(playerStatisticsInfos)) {
            map.put("playCountInfo", playerStatisticsInfos);
            map.put("hasData", 1);
        } else {
            map.put("hasData", 0);
        }
        return map;
    }

ajax实现highchart与数据库数据结合完整案例分析(三)---柱状折线图的更多相关文章

  1. java代码实现highchart与数据库数据结合完整案例分析(二)---折线图

    作者原创:未经博主允许不许转载 在上一篇的博客中,展示和分析了如何做一个饼状图,有疑问可以参考上一篇博客. 现在分析和展示折线图的绘制和案例分析, 先展示效果图: 与饼状图不同的是,折线图展现更多的数 ...

  2. java代码实现highchart与数据库数据结合完整案例分析(一)---饼状图

    作者原创:转载请注明出处 在做项目的过程中,经常会用到统计数据,同时会用到highchart或echart进行数据展示,highchart是外国开发的数据统计图插件, echart是我们国家开发的数据 ...

  3. ajax验证表单元素规范正确与否 ajax展示加载数据库数据 ajax三级联动

    一.ajax验证表单元素规范正确与否 以用ajax来验证用户名是否被占用为例 1创建表单元素<input type="text" id="t"> 2 ...

  4. 阿里云资深DBA专家罗龙九:云数据库十大经典案例分析【转载】

    阿里云资深DBA专家罗龙九:云数据库十大经典案例分析 2016-07-21 06:33 本文已获阿里云授权发布,转载具体要求见文末 摘要:本文根据阿里云资深DBA专家罗龙九在首届阿里巴巴在线峰会的&l ...

  5. 数据可视化(Echart) :柱状图、折线图、饼图等六种基本图表的特点及适用场合

    数据可视化(Echart) 柱状图.折线图.饼图等六种基本图表的特点及适用场合 参考网址 效果图 源码 <!DOCTYPE html> <html> <head> ...

  6. highchart柱状堆叠图动态数据请求

    $(function () { var options = { chart: { renderTo: 'indoor', type: 'column', }, title: { text: '室内问题 ...

  7. 使用所见即所得文本编辑器编辑文本存入数据库后通过ajax获取服务器json_encode的数据到前台,文本内容上边的html标签不解析

    使用所见即所得文本编辑器编辑文本存入数据库后通过ajax获取服务器json_encode的数据到前台,文本内容上边的html标签不解析 因为我在前台使用了jquery的text()方法,而不是html ...

  8. Ajax实现xml文件数据插入数据库(二)--- ajax实现与jsp的数据交互。

    在上一篇文章中我们成功得到了重新组织后的数据,接下来需要做的便是将数据插入到数据库中了.在与数据库打交道的过程中有一些方法是普遍的,我们将这些通用方法封装到一个DbUtil类中,以便复用,封装好的Db ...

  9. 在使用ajax实现三级联动调用数据库数据并通过调出的数据进行二级表单查询

    在使用ajax实现三级联动查询数据库数据后再使用ajax无刷新方式使用三级联动调出的数据进行二级查询 但是现在遇到问题,在二级查询的时候期望是将数据以表格的形式展示在三级联动的下方,但是现在在查询后会 ...

随机推荐

  1. sql server低版本到高版本还原,找不到备份集

    关键词:sql server低版本到高版本还原 故障问题,图中备份集(红色框线部分)没有数据,无法选择,导致无法还原 解决办法: [1] 低版本的备份到高版本的,用语句可以还原 注意事项: 低版本不一 ...

  2. LINUX的前后台程序查看切换

    1.在Linux终端运行命令的时候,在命令末尾加上 & 符号,就可以让程序在后台运行 root@Ubuntu$ ./tcpserv01 & 2.如果程序正在前台运行,可以使用 Ctrl ...

  3. mysql 权限管理 revoke 回收权限 命令

    回收所有库,所有表的所有权限 revoke all on *.* from 针对mike的账号 回收 所有库,所有表的select权限 mysql> revoke select on *.* f ...

  4. [py]字符串/列表

    去除str首尾空格(切片) ## str长度 循环,判断 ### [:i] [i:] 记录位置点 ## 方法1 def trim2(s): s2 = "" start = 0 en ...

  5. [py]flask动态展示主机内存图

    echarts基础 需要借助这个图来绘制,动态内存图. 绘制步骤 写py脚本来入库日志 选取合适的echart,并观察图所需的数据格式 用flask返回这个静态的echarts 用flask写接口返回 ...

  6. [LeetCode] 133. Clone Graph_ Medium tag: BFS, DFS

    Clone an undirected graph. Each node in the graph contains a label and a list of its neighbors. OJ's ...

  7. unity3d-Visual Studio Tools for Unity快捷键

    1.首先 当安装for unity 后,打开vs2013(我使用的是vs2013),右键可以看到for unity 提供了两个快捷键 2.其次 (Ctrl+Shift+M) 3.最后(Ctrl+Shi ...

  8. 读书--编写高质量代码 改善C#程序的157个建议2

    重新从图书馆将这本书借出来,看一遍似乎记不住,这次打算看一点就记录点,记录下自己容易忘记的知识点,便于记住. 建议1:正确使用字符串: 1    string str1= "hellowor ...

  9. 禁止F12与右键

    实践项目的代码哦,给大家分享下,如何屏蔽右键与F12. 应用网站  www.empiretreasure.vip   与       www.MineBook.vip.可以去逛逛哦. 不多说了,上代码 ...

  10. python webdriver api-读取、设置配置文件

    文件结构: db.ini放置db信息的配置文件 文件中[gloryroad]是section信息 下边的dbname等是option信息 UiObjectMap.ini放置访问web的配置信息 配置用 ...