隐藏未使用的元素是否有益?

时间:2013-09-02 16:25:42

标签: javascript jquery html5

我来自计算机科学背景,我最熟悉的语言是Java,C#和C ++。在这些语言中,你的记忆足迹始终在你的脑海中,我被教导要销毁未使用的物体。

我最近作为网络开发者实习。我正在加快各种练习的速度,做一些网页设计,我有一段时间没做过,至少做得不好。在我的一个网站中,我有一些图像出现在屏幕上,然后移出视口再也看不到了。

.hide()有问题的元素是否有益?它是否会减少内存占用足以使其值得?它会减少足迹吗?一位同事表示不值得,因为点击是在页面加载,但他并不完全确定。

2 个答案:

答案 0 :(得分:1)

如评论中所述,隐藏元素仍将其留在DOM(文档对象模型)中。就个人而言,如果我有一些东西移出屏幕然后不需要我将使用jQuery .remove()方法从DOM中物理删除它。它可能会对性能产生影响,具体取决于图像的大小和发生的图像数量。

就像我说的那样,我喜欢我的DOM干净整洁而没有任何不必要的混乱,所以我会删除它们,但那只是我。

编辑:再看一遍,看来从DOM中删除元素并不会释放与之关联的内存(source)。当释放内存时,它似乎依赖于DOM实现(source)。物理上重用节点看起来是最有效的方法。

答案 1 :(得分:0)

@Pointy给出了正确答案(作为评论)。不 - 它隐藏起来很少,因为它仍然在内存中,因为元素(以及它的所有子元素)仍然在DOM中。它可以在可滚动/可变形区域中使绘画更快一点(但可能不会),但它肯定不会通过隐藏它来减少应用程序的内存消耗。