在使用AJAX时,jqplot内存不断增加。当系统分配给浏览器的内存不足时就崩溃了。
在网上找了很多资料都没有解决问题,最后看了其源码因为使用JQUERY变量$.jqplot进行实例化时会调用其内部的var plot = new jqPlot();
如果你每次AJAX都去实例化就会增加内存,就算你销毁实例,var plot = new jqPlot();产生的内存任然存在,因为它不是该实例的一个成员,这样就会导致这块内存不能够被访问。
解决办法:
if(lineMemory == null){
lineMemory = $.jqplot('distpic',[l1, l2, l3, l4, l5, l6], barLineConfig('用量'));
}else{
lineMemory.init('distpic', [l1, l2, l3, l4, l5, l6], barLineConfig('用量'));
lineMemory.replot();
}
//先创建一个对像,如果该对像存在就进行初始化,然后调用replot进行重画。这样就不会重复调用jquery.jqplot.js中的var plot = new jqPlot();