首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

jqPlot 兑现动态显示数据,防止内存溢出的实现

2012-11-25 
jqPlot 实现动态显示数据,防止内存溢出的实现。jqPlot是一个十分强大、功能丰富的图表插件,能够显示走势图、

jqPlot 实现动态显示数据,防止内存溢出的实现。
jqPlot是一个十分强大、功能丰富的图表插件,能够显示走势图、柱形图等常用的图表类型,相信国内用的人很多。

大家在使用jqPlot动态更新图表时,也许会碰到过在IE中出现内存溢出的问题,下面我们来看看集中动态更新jqPlot图表的方式:

方式一:通过重建图表实现动态显示。

/** * 重绘plot图表。 *  * @param containerId *            容器ID。 * @param chartData *            图表数据。 * @param plotConfig *            图表配置信息。 * @returns 返回重绘后的图表对象。 */function replotChart(plot, chartData) {setChartDataToPlot(plot, chartData);plot.replot({resetAxes : true});return plot;}/** * 将最新的数据设置到plot图表中。 *  * @param plot * @param chartData */function setChartDataToPlot(plot, chartData) {for ( var i = 0; i < plot.series.length; i++) {for ( var j = 0; j < plot.series[i].data.length; j++) {try {plot.series[i].data[j][1] = chartData[i][j];} catch (e) {}}}}


通过运用这种方式,再次观察内存变化,会发现内存溢出问题已经不存在了。

从中我们发现,只要重建Plot图表,内存就会出现递增的现象,因此,当我们需要切换图表的时候,最好将原来的图表隐藏起来,当再次需要显示的时候,再恢复显示,从而避免重复创建图表,从而导致内存溢出。 1 楼 ray_linn 2012-09-13   内存溢出 和 内存不足 是两个概念,乱来吧你。 2 楼 xianbin 2012-09-17   ray_linn 写道内存溢出 和 内存不足 是两个概念,乱来吧你。

并不是内存不足的问题,而是jqplot不断的重建之后,会在某些浏览器(比如IE中)产生内存泄露,从而导致内存不断的快速增长,最后沾满内存,出现内存溢出。

本人的测试环境为:IE8(存在泄露)、firefox 14(不存在泄露)、chrome 21(不存在泄露)。

不知道以上解释能解答楼上的疑问?

热点排行