lengdong0925 2015-09-01 07:54 采纳率: 0%
浏览 2441

重复调用jQuery ajax刷新Chart数据内存泄露问题,急~~~

在网页中使用标签定义了图表,在js用setInterval定时使用ajax获取数据后刷新图表数据。发现浏览器内存一直在涨,浏览器使用的是FireFox。
js代码如下:

 function FlowPageReday(){
    var RefreshTimeOut = 10*1000;   
    RefreshFlow();
    /*每隔一定的时间刷新页面*/
    setInterval("RefreshFlow()", RefreshTimeOut);

}

function RefreshFlow()
{
    //var TestData = GetTestFlow(180);
    //console.info(TestData);
    var AjaxRequest = $.ajax({  
        url: "/dashboard/realtime_order/",  
        data: "text",//数据类型text xml json  script  jsonp  
        "success": function(traffic_data){
            //console.info(traffic_data);

            RefreshOrderStart(traffic_data);
            traffic_data = null;
        },
        "error": function(xhr,textStatus){
            console.info("error");
            console.info(xhr);
        }
    }); 

    AjaxRequest = null;
}

function getRow()
{
    var minutes_num = 3*60;
    var hour = 0;
    var minutes = 0;
    /*
    var time = GetTimeFunc(0,0);
    console.info(time[0]+":"+time[1]+":"+time[2]);
    */
    var row = new Array();

    for(var i=0; i<minutes_num; i++){
        var tmp = GetTimeFunc(0,i-minutes_num);
        //console.info(tmp[0]+":"+tmp[1]+":"+tmp[2]);
        if(0 == tmp[1]){
            row[i] = tmp[0]+":00";
        }
        else if(30 == tmp[1]){
            row[i] = tmp[0]+":"+tmp[1];
        }
        else{
            row[i] = "";
        }
    }

    return row;
}

function RefreshOrderStart(order_data){
    var row = getRow();
    RefreshTotalFlow(row, order_data[0]);

    row = null;
    order_data = null;
}

function RefreshTotalFlow(row, inFlow){
    var doc = $("#ucarfirstorder_total").get(0);
    var salesChartCanvas = doc.getContext("2d");
    var salesChart = new Chart(salesChartCanvas);

    var salesChartData = {
        labels: row,
        datasets: [
          {
            label: "订单总数",
            fillColor: "#D2B48C",
            strokeColor: "#D2B48C",
            pointColor: "#D2B48C",
            pointStrokeColor: "#c1c7d1",
            pointHighlightFill: "#fff",
            pointHighlightStroke: "#D2B48C",
            //data: [40, 59, 80, 81, 87, 85, 89,94, 98, 99, 81, 76, 55,40, 32, 15, 10, 8, 6,12,24, 31,55,46, 39]
            data : inFlow
          }
        ]
    };

    var LineChart = salesChart.Line(salesChartData, salesChartOptions);

    salesChartData = null;
    salesChart = null;
    salesChartCanvas = null;
    doc = null;
    inFlow = null;
}

有没有大神帮忙看下是因为什么内存泄露了,如何修改?
(已经快两天了,怎么都解决不了。。。。。)

  • 写回答

1条回答 默认 最新

  • oxcow 2015-09-02 02:54
    关注

    换其他浏览器呢?是不是也存在同样的问题?

    评论

报告相同问题?

悬赏问题

  • ¥15 ROS Turtlebot3 多机协同自主探索环境时遇到的多机任务分配问题,explore节点
  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?
  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题