当前位置: 首页 > 面试题库 >

可以卸载动态加载的JavaScript吗?

秋飞鸾
2023-03-14
问题内容

我正在编写一个具有静态外部“外壳”和动态内容部分的Web应用程序。用户浏览系统时,动态内容部分具有许多更新。加载新的内容块时,还可以选择加载另一个JavaScript文件。我以良好的内务管理名义,从DOM中删除了适用于旧内容块的脚本块,因为不再需要JavaScript。

接下来是问题,当我意识到尽管我已经<script>从DOM中删除了该元素,但是先前评估过的JavaScript仍然可以执行。这当然是有道理的,但是我担心如果用户导航到许多不同的部分,可能会导致内存泄漏

那么问题是,我应该担心这种情况吗?如果是这样,是否有办法强制浏览器清除过时的JavaScript?


问题答案:

<theory>您可以采用一种更加面向对象的方法,并以一种方式来构建模型,即每个javascript块都以它们自己的对象和自己的方法进入。卸载后,您只需将该对象设置为null</theory>



 类似资料:
  • 我知道如何加载CSS。 怎么卸载?

  • 这几天来我一直在用我的头来对付它。我看了所有类似的问题,但它们不太符合我需要的。 我觉得很难相信没有人尝试过,或记录过,这之前,我想要一些想法,如何处理这一点。 要求 我正在为我的应用程序使用react引导程序,我想让用户在一组引导主题之间进行选择。为了保持简单,我目前只有一个光明和一个黑暗。这些样式是https://bootswatch.com/提供的scss,所以我不想尝试JS主题中的常见CS

  • 问题内容: 我正在编写一个服务器程序,该程序用于运行API的单元测试 (显示大量信息并提供Web访问以控制/监视整个事情)… 服务器在编译时 会 知道 该API,并以JAR的形式提供。 为了能够在 不同版本 的API的单元测试结果之间进行比较(而无需重新启动服务器),我希望能够卸载“当前”版本的API,并重新加载较新的版本(或较旧的版本) 。 我不想使用URLClassLoader并按名称调用每个

  • 问题内容: 不久前,我在Mac OSX上使用以下命令安装了Node.js版本0.2.1: 我最近安装了Homebrew,所以现在我更喜欢使用它来管理我的安装。我今天使用以下命令安装了Node.js版本0.4.5: 酿造节点 但是我注意到我仍然在这些目录中找到旧版本的Node.js: 卸载使用sudo make技术安装的Node.js的正确方法是什么? 提前致谢 问题答案: 没有“正确”的方法。该只

  • 问题内容: 如何可靠,动态地加载JavaScript文件?这将用于实现模块或组件,该模块或组件在“初始化”时将根据需要动态加载所有需要的JavaScript库脚本。 使用该组件的客户端不需要加载实现该组件的所有库脚本文件(并将标记手动插入其网页),只需加载“主”组件脚本文件即可。 主流JavaScript库如何做到这一点(原型,jQuery等)? 这些工具是否将多个JavaScript文件合并到脚

  • 我有一个基于Vaadin 7的应用程序,现在我想把我的组件添加到CustomLayout中。问题是CustomLayout忽略了模板(静态html)文件的头部分,所以这里描述的资源也被忽略了。静态html文件不是Vaadin应用程序的一部分,它们是动态生成的。如何在没有注释的情况下在客户端加载JS和CSS文件(属于静态html): 而且使用JavaScript.execute()也不是好方法。