JQUERY HighCharts 内存增长太快 大家看看怎么回事

自己要做一个实时的监控数据的图形,但是跟AJAX结合的时候,内存增长的速度 比较快,谁能帮我看看怎么回事,谢谢了!

Java代码 复制代码  收藏代码
  1. waveLineImage = new Highcharts.Chart({   
  2.     chart: {   
  3.         renderTo: 'waveImage',   
  4.         defaultSeriesType: 'line',   
  5.         plotBorderWidth: 1,   
  6.         plotBorderColor: '#99CC99',   
  7.         marginRight: 12,   
  8.         showAxes: true  
  9.     },   
  10.     title: {   
  11.         text: '',   
  12.         x: -20 //center   
  13.     },   
  14.     subtitle: {   
  15.         text: '',   
  16.         x: -20  
  17.     },   
  18.     xAxis: {   
  19.         tickWidth: 0,   
  20.         tickInterval: 5,   
  21.         gridLineWidth: 1,   
  22.         gridLineColor: '#99CC99',   
  23.         categories: []   
  24.     },   
  25.     yAxis: {   
  26.         title: {   
  27.             text: ''  
  28.         },   
  29.         min: -1,   
  30.         tickInterval: 5,   
  31.         gridLineWidth: 1,   
  32.         gridLineColor: '#99CC99'  
  33.     },   
  34.     plotOptions: {   
  35.         series: {   
  36.             animation: false,   
  37.             marker: {   
  38.                 enabled: false  
  39.             }   
  40.         }   
  41.     },   
  42.     tooltip: {   
  43.         enabled:false,   
  44.         formatter: function(){   
  45.             return null;   
  46.         }   
  47.     },   
  48.     legend: {   
  49.         enabled: false  
  50.     },   
  51.     exporting: {   
  52.         enabled: false  
  53.     },   
  54.     series: [{   
  55.         name: "monitor",   
  56.         data: []   
  57.     }, {   
  58.         name: "temp",   
  59.         data: []   
  60.     }]   
  61. });  
waveLineImage = new Highcharts.Chart({
    chart: {
        renderTo: 'waveImage',
        defaultSeriesType: 'line',
        plotBorderWidth: 1,
        plotBorderColor: '#99CC99',
        marginRight: 12,
        showAxes: true
    },
    title: {
        text: '',
        x: -20 //center
    },
    subtitle: {
        text: '',
        x: -20
    },
    xAxis: {
        tickWidth: 0,
        tickInterval: 5,
        gridLineWidth: 1,
        gridLineColor: '#99CC99',
        categories: []
    },
    yAxis: {
        title: {
            text: ''
        },
        min: -1,
        tickInterval: 5,
        gridLineWidth: 1,
        gridLineColor: '#99CC99'
    },
    plotOptions: {
        series: {
            animation: false,
            marker: {
                enabled: false
            }
        }
    },
    tooltip: {
    	enabled:false,
        formatter: function(){
            return null;
        }
    },
    legend: {
        enabled: false
    },
    exporting: {
        enabled: false
    },
    series: [{
        name: "monitor",
        data: []
    }, {
        name: "temp",
        data: []
    }]
});



上面是 初始化曲线图的实例

Java代码 复制代码  收藏代码
  1. maxSize = 0;   
  2. lastSize = -1;   
  3. var tempArray = null;   
  4.   
  5. function drawOscillogram(waveData){   
  6.     if (waveData) {   
  7.         var dataArray = new Array();   
  8.         var array = null, point = null, num = null,item = null;   
  9.         var waveDataLength = waveData.length;   
  10.         for (var i = 0; i < waveDataLength; i++) {   
  11.             array = waveData[i].split(",");   
  12.             point = 1 / array.length;   
  13.             for (var j = 0; j < array.length; j++) {   
  14.                 num = i + Math.round((point * j) * 10) / 10;   
  15.                 item = parseFloat(array[j]);   
  16.                 if(maxSize<item) maxSize=item;   
  17.                 dataArray.push([num, item]);   
  18.                 num = null;   
  19.             }   
  20.             array = null;  item = null;  point = null;   
  21.         }   
  22.            
  23.         if (waveDataLength < 60) {   
  24.             if (tempArray == null) {   
  25.                 tempArray = new Array();   
  26.                 for (var i = 0; i < 61; i++) {   
  27.                     tempArray.push([i, -6]);   
  28.                 }   
  29.             }   
  30.             if(!waveLineImage.series[1])  waveLineImage.addSeries("",true,false);   
  31.             waveLineImage.series[1].data = tempArray;   
  32.         }   
  33.         else {   
  34.             tempArray = null;   
  35.             waveLineImage.series[1].remove();   
  36.         }   
  37.         waveLineImage.series[0].data = dataArray;   
  38.         dataArray = null; waveDataLength = null;   
  39.         if(lastSize!=maxSize)   
  40.         {   
  41.             //new Highcharts.Chart(waveLineImage);   
  42.             lastSize=maxSize;   
  43.         }else{   
  44.             waveLineImage.redraw();   
  45.          }   
  46.           
  47.     }   
  48. }  
maxSize = 0;
lastSize = -1;
var tempArray = null;

function drawOscillogram(waveData){
    if (waveData) {
        var dataArray = new Array();
        var array = null, point = null, num = null,item = null;
		var waveDataLength = waveData.length;
        for (var i = 0; i < waveDataLength; i++) {
            array = waveData[i].split(",");
            point = 1 / array.length;
            for (var j = 0; j < array.length; j++) {
                num = i + Math.round((point * j) * 10) / 10;
                item = parseFloat(array[j]);
                if(maxSize<item) maxSize=item;
                dataArray.push([num, item]);
                num = null;
            }
            array = null;  item = null;  point = null;
        }
        
        if (waveDataLength < 60) {
            if (tempArray == null) {
                tempArray = new Array();
                for (var i = 0; i < 61; i++) {
                    tempArray.push([i, -6]);
                }
            }
			if(!waveLineImage.series[1])  waveLineImage.addSeries("",true,false);
            waveLineImage.series[1].data = tempArray;
        }
        else {
            tempArray = null;
            waveLineImage.series[1].remove();
        }
        waveLineImage.series[0].data = dataArray;
		dataArray = null; waveDataLength = null;
		if(lastSize!=maxSize)
		{
			//new Highcharts.Chart(waveLineImage);
			lastSize=maxSize;
		}else{
			waveLineImage.redraw();
		 }
       
    }
}



waveData 是 传过来的 数据,把他绑定到图形中 ,内存长的飞快,每秒3MB,怎么修改,怀疑是//new Highcharts.Chart(waveLineImage);这句话增长的内存,然后调用 highCharts 的redraw 方法,重画,可是没有效果出来 求高手 提错!!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值