gpt4 book ai didi

javascript - 非常小的 jsfiddle 的 DOM 泄漏与 jquery

转载 作者:行者123 更新时间:2023-11-30 16:48:33 24 4
gpt4 key购买 nike

我开始跟踪我的网络游戏中的一些内存泄漏。我发现了一个重复出现的 DOM 节点泄漏模式,但我不明白为什么。我不是使用 chrome 开发工具的专家,但我正在学习。

我可以设置的最小示例是:

<div id = "main">
</div>

<button onclick ='reset();'> test </button>

<script>
function reset()
{
var Div = "<select></select>";
$("#main").html(Div);
}
</script>

JSFIDDLE LINK

在chrome中,当我使用开发工具和时间线时,我们可以看到:

  • 我们在加载 jsfiddle 页面时得到了 X 个 DOM 节点
  • 如果我们使用“测试”按钮一次,我们得到 X+2 个节点
  • 每次后续使用都会增加 3 个节点

这些节点永远不会被 GC 处理,我不明白为什么。使用 <option> 时问题更严重在<select>里面(这似乎与父节点没有得到 GC 的事实相一致)。 <input> 的问题也一样。据我所知(至少有复选框和 radio )。

这看起来很简单,我显然错过了一些简单的东西,但它是什么超出了我的范围。

您有什么想法可以解决这个问题吗?我尝试过使用堆快照,但由于我还没有完全理解它,所以我没有得到任何结果。

编辑:编辑以解决问题,因为我还没有找到答案。

最佳答案

我最近在使用 Chrome 43 时也遇到了这个问题。它似乎是 Chrome 本身的一个错误,并在 Chrome 46 中得到修复 ( Chrome Canary )

关于javascript - 非常小的 jsfiddle 的 DOM 泄漏与 jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30888819/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com