使用JQuery结合HIghcharts实现从后台获取JSON实时刷新图表

时间:2024-01-11 21:36:38

项目做了一个报表,可以实时的观察呼叫中心的电话访问量,之前的版本是使用JFreechart做的,使用一段时间后出现内存溢出,服务器的内存使用量会变得很大,所以改用Ajax前台加载数据的方式实现实时报表功能,查了很久选择了JQuery结合Highcharts的方式,Highcharts是一个JS实时报表API,下面给出基本代码:

首先,要添加JQuery和Highcharts的引用:

  1. <script type='text/javascript' src='js/jquery-1.3.2.js'></script>
  2. <script type='text/javascript' src='js/highcharts.js'></script>

页面的body部分需要有个层用来渲染图表:

  1. <body>
  2. <div id="container" style="height: 400px"></div>
  3. </body>

在JS中声明图表:

  1. <script type='text/javascript'>
  2. //<![CDATA[
  3. $(function(){
  4. //声明报表对象
  5. var chart = new Highcharts.Chart({
  6. chart: {
  7. //将报表对象渲染到层上
  8. renderTo: 'container'
  9. },
  10. //设定报表对象的初始数据
  11. series: [{
  12. data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
  13. }]
  14. });
  15. function getForm(){
  16. //使用JQuery从后台获取JSON格式的数据
  17. jQuery.getJSON('http://localhost:8080/JQueryPIC/ajax', null, function(data) {
  18. //为图表设置值
  19. chart.series[0].setData(data);
  20. });
  21. }
  22. $(document).ready(function() {
  23. //每隔3秒自动调用方法,实现图表的实时更新
  24. window.setInterval(getForm,3000);
  25. });
  26. });
  27. //]]>
  28. </script>