是否有任何web浏览器对删除的dom元素进行垃圾收集?(与Javascript对象相反)
如果一个web应用程序从未刷新过页面,而是完全从第一个页面加上Javascript请求构建,从而根据需要创建和销毁元素,那么有任何浏览器会重用过时的dom元素所使用的内存吗 这在任何浏览器中都有计划吗 我认为成熟的extJS应用程序对这种内存泄漏非常敏感 是否有任何真正有效的重用策略来缓解此问题是否有任何web浏览器对删除的dom元素进行垃圾收集?(与Javascript对象相反),javascript,dom,memory,browser,html-rendering,Javascript,Dom,Memory,Browser,Html Rendering,如果一个web应用程序从未刷新过页面,而是完全从第一个页面加上Javascript请求构建,从而根据需要创建和销毁元素,那么有任何浏览器会重用过时的dom元素所使用的内存吗 这在任何浏览器中都有计划吗 我认为成熟的extJS应用程序对这种内存泄漏非常敏感 是否有任何真正有效的重用策略来缓解此问题 这里我指的不是Javascript对象垃圾收集,只是删除了DOM元素,但我不确定这最终是否本质上是一样的。简短的回答是,这取决于您的Javascript引擎 Chrome的V8就是这样做的看起来Chro
这里我指的不是Javascript对象垃圾收集,只是删除了DOM元素,但我不确定这最终是否本质上是一样的。简短的回答是,这取决于您的Javascript引擎
Chrome的V8就是这样做的看起来Chrome是这样做的: 内存使用:
我原以为DOM垃圾收集与Javascript对象垃圾收集不同,我知道V8在Javascript原型设计方面有一些有趣的方法。这些优化是否也适用于实际的DOM元素?本文只是关于JS内存的。它甚至没有提到DOM。Chrome将DOM元素存储为本机对象,并为每个元素创建JS包装器对象,JS包装器对象与其他JS对象类似,只是它们由DOM子树分组保存。我搜索了,但找不到他们是如何对实际的底层本机DOM对象进行内存跟踪的。Firefox和IE都使用引用计数(或者至少在2010年前后使用过,我不确定从那以后是否发生了变化)。这是一个很好的说明工具,我们能解释4K从何而来吗?@barrymac:我不能确切地告诉你,但我猜,悬停按钮(即新图形)和处理点击也需要一些内存。当你甚至移动鼠标时,幕后发生的事情可能也会用到内存,比如JSFIDLE上文本区域的褪色标签。我知道这有点迂腐,但我相信有人知道,或者可能有一个更简单、更可控的测试来消除这些歧义。一个相关的问题有一些好的答案:更多信息,请参阅说明: