在网页中使用标签定义了图表,在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;
}
有没有大神帮忙看下是因为什么内存泄露了,如何修改?
(已经快两天了,怎么都解决不了。。。。。)