使用$ .getScript,我可以动态加载js文件.是否可以"卸载"其中一些文件?
我有一个基于ajax的管理面板.我有3个部分.单击每个部分时,我只想加载与之关联的文件.当切换到另一个部分时,我想卸载不必要的文件.
Nic*_*ver 11
如果真的有可能,"卸载" 在这里没有多大意义.让我们退后一步,看看你为什么不加载所有文件开头:
现在从另一边看它,你已经加载了它们,这意味着上面已经发生过两次,你支付了获得它们的请求成本以及它们已经完成了什么.此外,什么影响他们的页面上一般不能被撤消.只需删除一个<script>不删除它声明的函数,它附加的事件处理程序等.
简而言之,你为什么要卸载?如果是为了消除这些影响,那么一个人不容易,不管怎么说都不是通用的.如果它是为了减轻页面...这里没有任何好处,你实际上只会产生删除元素的成本,而对于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;
Run Code Online (Sandbox Code Playgroud)
我认为有正当理由加载和卸载脚本.我编写了一个监控工具,其中内容一直交换进出中心<div>.每个加载都需要将新函数附加到刚刚加载的内容上.如果您(un)加载特定于(未加载)内容的js,则内存占用量保持很小.并且您可以在编写通用xhtml时重复使用先前定义的函数名称以获得稍微不同的响应.
假设<div>包含有关数据和平的信息.用户想要编辑该特定记录,以便将<div>内容替换为在按钮,复选框等上具有各种行为的表单.表单被子目录并且<div>被原始内容替换但反映了更改.表格已经消失,因此需要任何相关的行为.
Imho加载到您的页面x.htm + x.css + x.js上的某个<div>,并在需要其他内容和行为时替换它们,而不是重新分析新内容并附加所有可能的响应,即使新内容中缺少某些节点或类.
而不是大型javascript文件,一组可插入的js模块使我的代码组织良好,并且ajax行为的维护相对容易.在jQuery中支持这样的方案对我来说是一个巨大的帮助.
| 归档时间: |
|
| 查看次数: |
14343 次 |
| 最近记录: |