Javascript 使用平移关联两个图形时Flot内存泄漏

Javascript 使用平移关联两个图形时Flot内存泄漏,javascript,jquery,memory-leaks,flot,Javascript,Jquery,Memory Leaks,Flot,我们使用flot渲染两个图形,它们共享相同的x轴。 我们用以下方法绘制它们: plot1 = $.plot($("#placeholderGraph1"), p1_data, d1_options); plot2 = $.plot($("#placeholderGraph2"), p2_data, d2_options); 我们需要确保在一个图形上平移和缩放也会重新绘制另一个图形,反之亦然。我们通过以下约束实现这一点: $("#placeholderGraph1").bind("plotpan

我们使用flot渲染两个图形,它们共享相同的x轴。 我们用以下方法绘制它们:

plot1 = $.plot($("#placeholderGraph1"), p1_data, d1_options);
plot2 = $.plot($("#placeholderGraph2"), p2_data, d2_options);
我们需要确保在一个图形上平移和缩放也会重新绘制另一个图形,反之亦然。我们通过以下约束实现这一点:

$("#placeholderGraph1").bind("plotpan", adjustGraph1Axes);
$("#placeholderGraph2").bind("plotpan", adjustGraph2Axes);
如果我们不添加最后两条语句,就不会出现内存泄漏,浏览器(所有浏览器)在重画时都会删除内存。但通过上述绑定,浏览器永远不会丢失内存,内存会累积到数百兆字节

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

我们尝试了以下解决内存泄漏的方法,但均无效:
1.生成plot1和plot2全局变量并显式删除内容
2.删除图形div并重新创建
3.在重新绑定之前显式解除绑定事件
4.在重画之前绘制空图形


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

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

我建议您将JQuery与上面提到的flot插件一起升级到1.5版

您可能希望访问此链接(请参阅右侧的更改日志):


我可能遇到过类似的问题:在概览图上同步选择和在主图中平移/缩放;我的问题是,一个绘图的事件处理程序正在触发另一个绘图的事件,而相应事件处理程序的执行正在触发第一个绘图的事件,这导致原始事件处理程序执行…导致无限循环

换句话说,您确定您的问题不是执行
AdjustGraph1轴
没有触发图2的
plotpan
事件,从而导致无意中执行
AdjustGraph2轴
,哪一个触发图1的
绘图盘
,并导致执行
调整图1轴
,依此类推?我的帖子和解决方案位于此处:


我使用了一个标志来解决两个事件处理程序之间的乒乓球问题,我的解决方案是<>。

您不能继续添加上一个问题的信息,而不是创建另一个问题吗?请下次不要创建新问题。再多写一点代码会有帮助。@sujit:您如何删除div?删除div将在内存中创建分离的dom元素。的可能重复项