卸载用getScript加载的文件?

使用$ .getScript我可以动态加载js文件。 是否可以“卸载”其中一些文件?

我有一个基于ajax的管理面板。 我有3个部分。 单击每个部分时,我只想加载与之关联的文件。 当切换到另一个部分时,我想卸载不必要的文件。

如果真的有可能,“卸货”在这里没有多大意义。 让我们退后一步,看看你为什么加载所有文件开头:

  • 它们是另一个HTTP请求和X字节,如果你不需要它们,就不要得到它们
  • 它们有不想要的效果 – 你不希望脚本X在这里发生什么

现在从另一边看它,你已经加载了它们,这意味着上面已经发生了件事 ,你支付了获得它们的请求成本以及它们已经完成的工作。 此外,他们对页面的影响不能一般地撤消。 只需删除就不会删除它声明的函数,它附加的事件处理程序等。

简而言之,你为什么要卸载? 如果是为了消除这些影响,那么一个人不容易,不管怎么说都不是通用的。 如果它是为了减轻页面...这里没有任何好处,你实际上只会产生删除元素的成本,而对于JavaScript方面的客户端没有任何好处。

正如Nick Craver指出的那样,很难理解你为什么要这样做的原因。

但是,如果有正当理由这样做。 我会把所有加载脚本的代码放在一个类中。 当我想卸载它时,我会将它分配给null。 例如。

 //external file: o1=new Object(); o1.function1=function(){ //blah blah blah }; o1.function2=function(){ //blah blah blah }; o1.var1=1; //and if when i'll need to get rid of all of this i can just o1=null; 

我认为有正当理由加载和卸载脚本。 我编写了一个监视工具,其中内容一直交换到中心

。 每个加载都需要将新函数附加到刚刚加载的内容上。 如果您(un)加载特定于(未加载)内容的js,则内存占用量保持很小。 并且您可以在编写通用xhtml时重复使用先前定义的函数名称以获得稍微不同的响应。

假设

包含有关数据和平的信息。 用户想要编辑该特定记录,以便将

内容替换为在按钮,复选框等上具有各种行为的表单。表单被子目录并且

被原始内容替换但反映了更改。 表格消失了,因此需要任何相关的行为。

Imho加载到您的页面x.htm + x.css + x.js上的某个

,并在需要其他内容和行为时替换它们,而不是重新分析新内容并附加所有可能的响应,即使新内容中缺少某些节点或类。

而不是大型javascript文件,一组可插入的js模块使我的代码组织良好,并且ajax行为的维护相对容易。 在jQuery中支持这样的方案对我来说是一个巨大的帮助。

您可以简单地从头部追加和删除js文件:

 $('script').last().remove();`//remove last file from html file $('head').append(''); //add js file