操纵隐藏的DOM元素会影响性能吗?

时间:2015-07-07 13:09:55

标签: javascript performance dom charts highcharts

我有一个包含3个图表的页面,这些图表通过HighCharts呈现。大多数用户将通过平板电脑访问此页面。图表都是“实时数据”图表,因此它们每秒都会使用新数据进行更新。在给定时间,只能看到一个图表。

当图表被隐藏(显示:无),但他们的HTML每秒仍在更新时,是否会影响性能?如果在隐藏时从DOM中删除图表的包含元素,然后在再次显示图表时将元素重新附加,是否会有所不同?当图表从DOM中删除时,图表仍会每秒更新一次,但实际上它不是DOM的一部分。

1 个答案:

答案 0 :(得分:1)

  

当图表被隐藏(显示:无),但他们的HTML每秒仍在更新时,是否会影响性能?

是的,它会影响性能,即使它是隐藏的。例如,脚本中的$('#fooElement')仍会通过DOM尝试查找元素。但是,当元素在隐藏时更新时,它不必由浏览器呈现,因此成本更低。

  

如果我隐藏了DOM中的图表包含元素,然后在再次显示图表时将元素重新附加,是否会有所不同?

如果从DOM中删除它,则必须在用户尝试查看它时构造它。这是恕我直言,而不是把它留在DOM中。另一件事是你可以忽略更新,直到它显示出来。当即将显示图表时,只需调用刷新并使用新数据在DOM中更新它并将其显示为Afterwads。这当然比每次构建它都要花费更少的资源。

TL; DR仅更新显示的元素。