gpt4 book ai didi

`onload` 事件的 JavaScript 对象/回调生命周期

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:51:18 25 4
gpt4 key购买 nike

今晚我要编写一个图片库,这让我想到了一个哲学问题

我创建了一个预加载的 Image 对象并为其设置了一个 onload 事件

  ...  onmouseover = function() {
preloadActive = true;
imgPreload = new Image();

imgPreload.onload = function() {
preloadActive = false;
}

imgPreload.src = ...;
}

其中imgPreloadpreloadActive是全局变量

现在假设一个新的 onmouseover()onload() 执行之前触发。

运行一行代码创建一个新的图像对象,旧图像对象失去最后一个链接并转到 Erebus,等待垃圾收集器吃掉它。

问题在这里:旧对象实例不会立即销毁。它的 onload 事件继续存在,没人知道会持续多久?您有这方面的跨浏览器经验吗?

谢谢!

PS:我不担心 IE6


PPS:如果我有一个内部带有 setInterval 超时 ID 的对象会怎样?

obj.someVar = setInterval(...)

setInterval 是否在我执行的那一刻就停止了

obj = {}

?

最佳答案

好吧,对于初学者来说,全局变量不符合垃圾回收的条件(这通常是内存泄漏问题的原因,也是避免一起使用全局变量的众多原因之一)。

话虽如此,请阅读this article埃里克·利珀特着。它很旧,但我仍然认为它很相关。

关于 `onload` 事件的 JavaScript 对象/回调生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4454795/

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