添加、删除和重新添加相同的外部 Javascript - 内存/重新运行?

问题描述

作为 SPA 应用程序的一部分,我们需要从 3rd Party 供应商(想想聊天机器人)加载某些外部 Javascript 文件

他们没有特定于 SPA 的实现,因此他们的建议是向 DOM 添加一个脚本标记(然后加载 JS 并执行自己的操作),然后在我们不再需要它时删除该脚本 dom 实例。 (并删除生成的任何可视 Dom)。

我到处寻找,但找不到这个问题的完整答案:

  1. 导航(通过 SPA,因此仅客户端路由)到需要聊天机器人(第 3 方)的页面
  2. 使用带有 (appendChild(document.createElement('script')...) 的 javascript 加载外部脚本 'a.js'
  3. 某些时期的人们在该页面/视图上使用“a.js”所做的任何事情(通常创建一些 div/或 iFrame 并显示内容
  4. 从此视图导航(再次通过客户端站点路由),然后我们执行 removeChild(scriptElement),然后删除和可视化节点。 ...
  5. (0) - 导航到需要......的页面
  6. (1) ...

我的问题是:我知道从 html 正文中删除脚本节点实际上并没有删除代码。但是,当我不断重新添加相同的外部脚本(对于这个问题是静态的)时,它是简单地覆盖它添加的先前代码还是开始添加内存?此外,我假设通过重新添加代码是“重新启动” - 即“a.js”中“root”处的任何代码(例如,根“console.log()”将重新运行?

我找不到任何关于此的信息,对于长期 SPA,我认为了解这种方法是否会导致内存问题很重要。

注意:这一切都意味着我们无法更改 3rd Party JS(即有些确实提供简单的拆卸/关闭机制,因此不需要任何重新加载)。

非常感谢任何见解。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)