使用平移关联两个图形时绘制内存泄漏

Suj*_*jit 5 javascript jquery memory-leaks flot

我们用flot渲染两个图,它们共享相同的x轴.我们绘制它们:

plot1 = $.plot($("#placeholderGraph1"), p1_data, d1_options);
plot2 = $.plot($("#placeholderGraph2"), p2_data, d2_options);
Run Code Online (Sandbox Code Playgroud)

我们需要确保在一个图形上平移和缩放也会重绘另一个图形,反之亦然.我们通过以下绑定实现此目的:

$("#placeholderGraph1").bind("plotpan", adjustGraph1Axes);
$("#placeholderGraph2").bind("plotpan", adjustGraph2Axes);
Run Code Online (Sandbox Code Playgroud)

如果我们不添加最后两个语句,则没有内存泄漏,浏览器(所有浏览器)在重绘时会丢失内存.但是通过上面的绑定,浏览器永远不会丢失内存,它会累积到数百兆字节.

除此之外,我们还通过鼠标移动更新单个图例.

我们尝试了以下内存泄漏的方法,但都没有用:
1.制作plot1和plot2全局变量并显式删除内容
2.删除图形divs并重新创建
3.重新绑定前显式解除绑定事件
4.在重绘之前绘制空图形

关联两个图表或转储内存的任何其他方法?

小智 0

问题可能与 Flot 插件有关:jquery.flot.navigate.js。

我建议您将 JQuery 升级到 Version-1.5 以及上面提到的 flot 插件。

您可能想访问此链接(请参阅右侧的 ChangeLog):

https://code.google.com/p/flot/source/browse/trunk/jquery.flot.navigate.js?r=317