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
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站