gpt4 book ai didi

dart - 删除带有事件监听器的DOM元素是否会导致dart:html中发生内存泄漏?

转载 作者:行者123 更新时间:2023-12-03 03:19:00 25 4
gpt4 key购买 nike

假设我有很多元素,每个元素都有自己的侦听器,如下所示:

DivElement _container = querySelector("#container");

void _createButtons(int count) {
for (int i = 0; i < count; i++) {
var button = new ButtonElement()
..text = "Button #$i";
button.onClick.listen((_) => print("Clicked #$i."));
_container.append(button);
}
}

然后在某个时候清除DOM,如下所示:

_container.clear();

我应该担心“孤立”事件侦听器吗?

在纯JavaScript中似乎还不清楚(例如,参见 Does remove a DOM object (in Javascript) will cause Memory leak if it has event attached?)。查看Chrome DevTools时间轴,似乎周围有听众,但我不确定这是否与我要的内容有关。

我当然可以保留 StreamSubscription并“确定”取消它,但是如果不是绝对必要的话,我不想这样做。它使代码变得复杂。

最佳答案

垃圾收集器将删除侦听器(与JS摆脱未使用的侦听器的方式相同)。如果您不再需要订阅,则可以放心地删除它们。

关于dart - 删除带有事件监听器的DOM元素是否会导致dart:html中发生内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23416686/

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