我有一个页面,可以包含一个不同的内部页面在任何特定的时间。
每个内部页面都需要一个特定的js文件,该文件是使用Headjs动态加载的。
为了避免(方法和对象名)冲突,我想在加载新文件之前先卸载旧的js文件。
有没有人知道怎么做,或者这是否可能?谢谢!
发布于 2012-08-08 22:00:00
不是的。从理论上讲,没有什么比“卸载”javascript文件更好的了。一旦它加载了,它就一直在那里。
但可能还有其他技巧来避免“冲突”,主要是干净的代码。例如: 1-名称空间的使用2-避免全局变量3-定义作用域中的所有内容并理解作用域4-使用可理解的描述性变量名,避免命名为s,i,j等的变量。除非你已经习惯了,并且知道你在做什么。还要注意,因为javascript文件是在页面被请求时加载的,所以它会导致额外的流量使用巨大的变量和类名称。
假设您的函数具有相同的名称,但位于不同的作用域/命名空间中。
var myclass;
if (something) myclass = Obj1;
else if (somethingelse) myclass = Obj2;
myclass.func();这就是两个同名的函数,但它们位于不同的classes.and中,因此可以在不同的实现之间切换
希望这能有所帮助
https://stackoverflow.com/questions/11865962
复制相似问题