jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jQuery .remove()清除加载JavaScript时用于删除脚本标签?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
正如标题所示,如果我从DOM中删除一个脚本标记
$('#scriptid').remove();

javascript本身是否在内存中还是被清理?

或者我完全误解浏览器处理javascript的方式?这是很可能的。

对于那些对我有兴趣的问题,请看下面的内容

我将一些常见的JavaScript交互从静态脚本文件移动到PHP中的动态生成的。当用户需要时,它们按需加载。

这样做的原因是为了移动逻辑服务器并运行从服务器客户端返回的小脚本。而不是有一个包含大量逻辑的大脚本,客户端。

这是Facebook的一个类似的方法

Facebook talks frontend javascript

如果我们以一个简单的对话框为例。而不是在javascript中生成html,将其附加到dom,然后使用jqueryUI的对话框小部件加载它,我现在正在执行以下操作。

> Ajax请求是对dialog.PHP
>服务器生成特定于此对话框的html和javascript,然后将其编码为JSON
> JSON返回给客户端。
> HTML附加到< body>那么一旦渲染,JavaScript也被附加到DOM中。

插入后自动执行JavaScript,并打开动态对话框。

这样做大大减少了我的页面上的javasript的数量,但是我担心清理插入的JavaScript。

显然,一旦关闭对话框,就会使用jQuery从DOM中删除

$( ‘#对话’),删除()。

JavaScript附加了一个ID,我也通过相同的方法从DOM中删除

然而,如上所述,使用jQuery的.remove()实际上从内存中清除javascript,或者简单地删除< script>来自DOM的元素?

如果是这样,有没有办法清理这个?

解决方法

否。一旦加载了一个脚本,它定义的对象和函数就被保存在内存中。删除脚本元素不会删除它定义的对象。这与CSS文件相反,删除元素会删除它定义的样式。这是因为新款式很容易被回流。你能想像出一个脚本标签如何创建的,以及如何去除它?

编辑:但是,如果您有一个定义MyFunction的文件,那么您添加一个脚本,将MyFunction重新定义为其他脚本,将保留新值。如果要保持DOM清洁,您可以删除旧的脚本标签,但这是删除它。

EDIT2:我可以想到的唯一真正的“清理”功能的真正方法是拥有一个基本上调用delete window.MyFunction的JS文件,用于其他脚本文件可能定义的每个可能的对象和函数。由于显而易见的原因,这是一个非常糟糕的主意。

大佬总结

以上是大佬教程为你收集整理的jQuery .remove()清除加载JavaScript时用于删除脚本标签?全部内容,希望文章能够帮你解决jQuery .remove()清除加载JavaScript时用于删除脚本标签?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。