$('#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。
$( ‘#对话’),删除()。
JavaScript附加了一个ID,我也通过相同的方法从DOM中删除。
然而,如上所述,使用jQuery的.remove()实际上从内存中清除javascript,或者简单地删除< script>来自DOM的元素?
如果是这样,有没有办法清理这个?
解决方法
编辑:但是,如果您有一个定义myFunction的文件,那么您添加另一个脚本,将myFunction重新定义为其他脚本,将保留新值。如果要保持DOM清洁,您可以删除旧的脚本标签,但这是删除它。
EDIT2:我可以想到的唯一真正的“清理”功能的真正方法是拥有一个基本上调用delete window.myFunction的JS文件,用于其他脚本文件可能定义的每个可能的对象和函数。由于显而易见的原因,这是一个非常糟糕的主意。