显示/隐藏元素时的性能

时间:2014-11-20 07:58:38

标签: jquery

我想知道您通常需要对每个应用程序执行一次至少一次的常见任务。 基于另一个元素显示/隐藏元素的任务。比如一个游戏'播放某些媒体时按钮会被更改为暂停'或者'停止'媒体播放时按钮,反之亦然。

它更好(性能方面):

  1. 显示另一个元素并隐藏当前元素(DOM中的暂停和播放按钮都有适当的事件监听器)
  2. 更改按钮的src或背景和事件
  3. 我认为选项1是常用的选项,因为第二个选项还有更多工作要做?但是它还更快/更敏感吗?如果你已经有很多DOM的东西,如果你只有一个按钮,可能不是最好再放一个3个按钮? (例如在我的播放','暂停'以及'停止'情况下)。选项2太乱了吗?

    我正在考虑第二个选项,当有一个项目列表时,每个项目都包含所有这些按钮。如果没有一个有良好意见的人支持关于此的事实,我会自己对此进行基准测试。

    感谢您提供任何建议/想法/建议

1 个答案:

答案 0 :(得分:0)

我的消息得到了很长时间的评论,所以我把它作为解决方案发布......但它没有! 以下是我对该主题的所有个人想法和经验。这不会取代严肃的基准。

我猜,这完全取决于元素本身的内容。 因为它是一个简单的东西,如我认为的播放/暂停按钮,两种方法之间没有可测量的差异,即使你的页面上有很多其他dom元素。 (至少,在我的页面上,它在用户体验方面没有区别)

如果元素内有更多内容(如更大的图像,文本墙等): - 显示/隐藏解决方案在加载时会变慢,因为一切都会被加载,即使它在开始时不需要 - 并且由于它保留在dom中,因此您的页面会在用户设备上占用更多内存。

另一方面,新内容在用户交互时显示得更快,因为它已经存在;)

所以我认为,没有“解决方案”哪种方法会更好。这取决于你的页面,你必须找到“两全其美”以满足你的需求......