【发布时间】:2019-11-15 13:57:26
【问题描述】:
给定一个加载器:
function loader(src, callback, fail) {
let s = document.head.appendChild(document.createElement('script'));
s.type = "text/javascript";
s.src = src;
s.onload = function() {
callback()
s.onload = null; //useful?
s = null; //or maybe this?
}
s.onerror = fail
}
有一行s.onload = null 是否受益于 GC 释放一些内存?
【问题讨论】:
-
在这种情况下,
s(或this)到底是什么?通常整个对象无论如何都可以被收集。 -
delete frag永远不会做任何事情——delete会删除属性。开启严格模式。另外,我很确定 Bergi 从来没有接近过推荐它…… -
开启严格模式会告诉你
delete frag没有意义。我认为脚本也没有onreadystatechange。 -
为什么要围绕脚本创建一个片段包装器,这不是您要附加的唯一元素吗?
-
这是一个最小化回流的 DocumentFragment,现已从帖子中删除。 developer.mozilla.org/en-US/docs/Web/API/DocumentFragment
标签: javascript performance garbage-collection dynamic-script-loading