0

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

我最近获得了网络开发人员的实习机会。我正在跟上各种实践的步伐,并做一些我有一段时间没有做过的网页设计,至少做得不好。在我的一个站点中,我有一些图像出现在屏幕上,然后移出视口就再也看不到了。

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

4

2 回答 2

1

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

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

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

于 2013-09-02T16:34:21.833 回答
0

@Pointy 给出了正确的答案(作为评论)。不 - 它几乎没有隐藏它,因为它仍在内存中,因为元素(及其所有子元素)仍在 DOM 中。它可能会使在可滚动/可转换区域中的绘制速度更快一些(但可能不会),但它肯定不会仅仅通过隐藏它来减少应用程序的内存消耗。

于 2013-09-02T16:43:36.537 回答