为什么翻译 3d 泄漏 DOM 节点
Why is translate3d leaking DOM nodes?
考虑这个HTML页面:
http://jsbin.com/aYUcelo/1/(我建议下载它以摆脱所有JSBIN噪音(。
通过单击 GO 按钮,一个div 就会添加到正文中。RM 删除其中一个div。此外,它还将以下两种样式之一应用于新的div:
newDiv.style.color = "red";
// or
newDiv.style.WebkitTransform = "translate3d(0px, 0px, 0px)";
你可以在chrome开发工具内存时间轴中看到不断增加的节点数量,如果应用了WebkitTransform,GC无法删除。红色样式不会发生这种情况。
编辑:只是为了明确应用"红色样式",添加和删除div 的操作是等效的节点计数。
这种行为的原因是什么?我错过了重点吗?甚至没有 DOM 节点泄漏吗?
在这里,您可以找到两个时间线记录:https://docs.google.com/file/d/0B9S6doraVaWXdjRyWjluMW1BUlU(翻译(https://docs.google.com/file/d/0B9S6doraVaWXQVAwbFpfZzh1RVE(红(
在两条记录中,连续添加和删除 3 个div,最后请求 GC。仅供参考:我有一个更复杂的角度应用程序,但我可以寻找同一问题的内存泄漏。无论如何,我创建了这个更简单的示例。
编辑:时间轴记录的两张图像:https://docs.google.com/file/d/0B9S6doraVaWXMURzMjdhMWI0UDAhttps://docs.google.com/file/d/0B9S6doraVaWXWGhwVWhlMjN4dkE
编辑2:运行Windows 8/Chrome 30.0.1599.69 m
您是否偶然使用了Visual Studio 2013? 如果是这样,请检查您的网络面板,看看任何 XHR 活动与内存中不稳定的对象操作之间是否存在关联。 如果是这种情况,这是因为Visual Studio 2013集成了一个signalR浏览器监视器,该监视器在部署它的浏览器中测试项目时运行。
- 将DOM节点值与字符串Javascript进行比较
- 如何判断何时将dom节点添加到文档中
- 当DOM节点在DOM中移动时,如何阻止Firefox触发mouseleave
- 如何检查DOM节点是否继承自构造函数
- 如何存储DOM节点
- 保留未修改的dom节点副本问题
- 无法在 IE 7/8 中使用 parentNode 抓取 DOM 节点
- 窗口对象属性返回一个dom节点
- js初学者-如何在比网页中的DOM节点低一个级别上立即解析所有子节点
- querySelectorAll polyfill用于所有DOM节点
- 如何判断文本输入字段dom节点是否*没有*带有javascript的选择
- 主干移除视图和DOM节点
- Metor:将html保存为字符串,然后将其转换为DOM节点
- 将属性从 DOM 节点复制到 dijit 小部件中
- 我可以将 HTML 字符串分配给 HTML DOM 节点的内部 HTML 属性吗?
- 在不删除/附加 DOM 节点的情况下对 DOM 节点进行重新排序
- 检查 DOM 节点是否位于 Iframe 内
- JavaScript Memory Leak - DOM 节点和后代上的垃圾回收
- DOM 节点清理如何在 d3 中工作
- 动态 dom 节点与 jquery