基本上,我有一个 json 文件,它定义用户登录时要加载的内容。这包括 javascript 文件。当不同的用户登录时,需要卸载以前的东西,而无需刷新页面。
我正在使用 javascript 动态导入
modules[moduleId] = await import(url);
Run Code Online (Sandbox Code Playgroud)
我发现,即使我将“模块”变量清除为空对象后,动态导入的模块中定义的事件侦听器仍然会触发。我假设该闭包中定义的大多数其他内容仍然占用内存。
现在,如果我像这样滥用登录/注销,我假设我最终会遇到内存泄漏问题。如何确保加载到对象引用中的模块在不再需要时正确卸载?
我在这里使用纯 js,无法访问外部库或工具。