正如标题所说,如果我使用以下方法从 DOM 中删除脚本标签:
$('#scriptid').remove();
javascript 本身是保留在内存中还是被清除了?
或者......我完全误解了浏览器对待javascript的方式吗?这是很有可能的。
对于那些对我的提问原因感兴趣的人,请参见下文:
我正在将一些常见的 javascript 交互从静态脚本文件转移到 PHP 中动态生成的文件中。当用户需要它们时按需加载。
这样做的原因是为了移动逻辑服务器端并运行一个小脚本,从服务器端返回,客户端。而不是拥有包含大量逻辑的大型脚本,客户端。
这与 facebook 的做法类似......
如果我们以一个简单的对话框为例。而不是在 javascript 中生成 html,将其附加到 dom,然后使用 jqueryUI 的对话框小部件加载它,我现在正在执行以下操作。
- 向 dialog.php 发出 Ajax 请求
- 服务器生成特定于此对话框的 html 和 javascript,然后将它们编码为 JSON
- JSON 返回给客户端。
- HTML 被附加到
<body>
然后一旦呈现,javascript 也被附加到 DOM 中。
javascript 在插入时自动执行,并打开动态对话框。
这样做大大减少了我页面上的 javasript 数量,但我担心清理插入的 javascript。
显然,一旦对话框关闭,它就会使用 jQuery 从 DOM 中删除:
$('#dialog').remove();
javascript 附加了一个 ID,我也通过相同的方法从 DOM 中删除了它。
但是,如上所述,使用 jQuery 的 .remove() 实际上是从内存中清除了 javascript 还是简单地<script>
从 DOM 中删除了元素?
如果是这样,有什么办法可以清理它吗?