![](/img/trans.png)
[英]How can I load and unload(remove) css and javascript imports/files on will?
[英]How to unload dynamic imports in javascript?
所以基本上,我有一个 json 文件,它定义了用户登录时要加载的内容。这包括 javascript 文件。 当不同的用户登录时,需要卸载以前的东西而不刷新页面。
我正在使用 javascript 动态导入
modules[moduleId] = await import(url);
我发现,即使在我将“模块”变量清除为空的 object 之后,动态导入的模块中定义的事件侦听器仍在触发。 我假设在该闭包中定义的大多数其他内容仍然占用 memory 。
现在,如果我像这样滥用登录/注销,我假设我最终会遇到 memory 泄漏问题。 如何确保加载到 object 参考的模块在不再需要时正确卸载?
我在这里使用纯 js,无法访问外部库或工具。
我只能想到一种可能的(相当)好的解决方案。 只需用空的模块覆盖模块即可。 就像,加载将是:
modules[moduleId] = await import(`./${moduleId}.js`);
卸载是这样的:
modules[moduleId] = await import(`./empty_module.js`);
甚至更好:
modules[moduleId] = null;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.