Javascript 当在站点上加载同一脚本两次时,观察者是否停止从第一个脚本开始观察?
我在一个相当复杂的环境中有以下代码:Javascript 当在站点上加载同一脚本两次时,观察者是否停止从第一个脚本开始观察?,javascript,observers,Javascript,Observers,我在一个相当复杂的环境中有以下代码: var cfg = { attributes: true, childList: true, characterData: true }; var observer = new MutationObserver(afunction); observer.observe(e, cfg); 在实现我的一个新想法之前,我需要确保当我重新加载相同的脚本时,observer是否会自动停止观察,这意味着覆盖observer。 它将从被覆盖时停止观察,还是仅在垃圾收集
var cfg = { attributes: true, childList: true, characterData: true };
var observer = new MutationObserver(afunction);
observer.observe(e, cfg);
在实现我的一个新想法之前,我需要确保当我重新加载相同的脚本时,observer
是否会自动停止观察,这意味着覆盖observer
。
它将从被覆盖时停止观察,还是仅在垃圾收集器删除它时停止观察?它将仅在GC删除它时停止观察。Javascript对象和变量不会保留其代码创建的文件的任何内存,因此重新加载该文件不会对先前加载期间创建的对象产生任何影响 您可以进行明确检查:
var observer;
if (observer) { // variable from a previous load of file
observer.disconnect();
}
observer = new MutationObserver(afunction);
我怀疑它会停止观察。