在切换其可见性之前检查DOM元素的可见性是否值得?或者这是不成熟的优化?

Jim*_* G. 5 optimization jquery visibility premature-optimization

请考虑以下jQuery代码:

if ($(this).is(':hidden')) {
    $(this).show();
}
Run Code Online (Sandbox Code Playgroud)

我的问题:

  • 在发出show()命令之前检查元素的可见性是否值得?
    • 即DOM写入比DOM读取更昂贵,并且这种模式是否包括小的性能优化?
  • 或者是没有实用程序的可见性检查,并且简单地,无条件地发出show()命令会是更干净的代码吗?

Sam*_*son 6

如果你想要它显示,我不会打扰检查它是否隐藏 - 我只是显示它.我认为开始时不进行条件检查会有一个很小的优势,但我也相信它可能是微不足道的.

我创建了一个性能测试,表明没有检查结果,执行速度提高了25%.您可以在http://jsperf.com/is-hidden-check在线查看(并在几个浏览器中进行测试).