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

在前面分析和讲解了用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. Web Responsive Table, 只需CSS使table在手机和平板中完美显示

    在做responsive或者手机版页面的时候,经常碰到<Table>在手机和平板中会因为长度问题把页面撑大.最近看到一个比较好,比较方便的方法,而且仅仅用CSS 2就可以实现! 实例URL ...

  2. excel用法

    1:求大于某一值的个数:使用COUNTIF(区间,标准)    要大写 =COUNTIF(B2:B48,">=95") 2:求某一区间的个数用:大区间个数减小区间个数 =CO ...

  3. Comparable和Comparator的使用

    1:对象实现Comparable, 那么对象就具有了比较功能 package comparableAndComparator; import java.util.Collections; import ...

  4. sdut2613(This is an A+B Problem)大数加法(乘法)

    #include <iostream>#include <stdio.h>#include <string.h>#include <stdlib.h>u ...

  5. OpenCV中PCA实现人脸降维

    前言: PCA是大家经常用来减少数据集的维数,同时保留数据集中对方差贡献最大的特征来达到简化数据集的目的.本文通过使用PCA来提取人脸中的特征脸这个例子,来熟悉下在oepncv中怎样使用PCA这个类. ...

  6. myeclipse自带的数据库查看文件

    jdbc:mysql://localhost:3306/videocms?useUnicode=true&characterEncoding=utf8

  7. Qt下QString转char*

    Qt下面,字符串都用QString,确实给开发者提供了方便,想想VC里面定义的各种变量类型,而且函数参数类型五花八门,经常需要今年新那个类型转换 Qt再使用第三方开源库时,由于库的类型基本上都是标准的 ...

  8. 2:4 动态方法的调用(简化Action的配置)

    动态方法的第一种方法: 所以我们要手动设置 动态调用的开关打开:strus-core-jar里面:修改常量 使用方法: 根据请求来区分用哪个方法处理,处理完了,注意要在该方法里面返回与请求相同的字符串 ...

  9. python绘图之seaborn 笔记

    前段时间学习了梁斌老师的数据分析(升级版)第三讲<探索性数据分析及数据可视化>,由于之前一直比较忙没有来得及总结,趁今天是周末有点闲暇时间,整理一下笔记: 什么是seaborn Seabo ...

  10. liunx anacoda 安装pyltp

    anacoda 默认的gcc是4.7需要更新 https://anaconda.org/nlesc/gcc 更新之后再安装即可. 报错: /usr/lib64/libstdc++.so.6: vers ...