JavaScript 性能 – 删除伪 DOM 项

标签 javascript performance dom svg memory

为了计算路径,我在后台创建多个 SVG 元素,如下所示:

var path = document.createElementNS('http://www.w3.org/2000/svg', 'path');

问题在于,这是在一个循环中发生的,并且创建了不可预见的路径数量。这些元素不附加到正文。我的问题是所有这些伪元素都会影响性能/内存吗?或者它们会被垃圾收集吗?

如果不是,从文档中删除元素的最佳技术是什么?

谢谢!

最佳答案

垃圾收集器会收集所有无法再访问的变量,因此您的代码要么在顶层运行,这意味着变量将附加到 window,因此不可进行垃圾收集,或者您的代码在 function 中运行,在这种情况下,如果内部没有某些闭包,它们将在 function 结束时被收集,并保留对它们的引用,如下所示示例:

function foo() {
    var path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
    return function() {
        // Do something with path;
    }
}

var bar = foo();

在这种情况下,path 的存在时间与 bar 一样长,因为它具有对内部匿名函数的引用,该函数具有路径上的引用。

关于JavaScript 性能 – 删除伪 DOM 项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59023327/

相关文章:

javascript - Emberjs - 直接调用嵌套资源的 URL

javascript - 如何检查json对象是否为null?

c++ - boost::barrier性能低,等待操作

Javascript 链接方法和处理时间

c++ - 填充 unordered_set 太慢

javascript - 在 angularJS 中调用 ajax 后更改 View

Javascript将对象插入数组会改变整个数组

dom - 为什么 DOM 对象的 VarType() 返回 vbString?

javascript - 如果使用 dom 图像元素,为什么 canvas drawImage 不起作用?

javascript - jQuery - 插入内联 CSS 或制作 CSS 类并添加