只要您的 javascript 是模块化的,您就可以随时卸载它。
如果您不知道,Javascript 中的函数就是对象。使用对象,您可以这样做:
var a = {b:10, c:20, d:30}; //Some memory is allocated for object a
a = null; //Object a will be deleted, and no longer need any memory
你如何使用它来处理函数?这是最简单的解释:
var myFunction = function(a,b,c) {
alert(a+b+c);
}; //Here we have a function stored in memory
myFunction = null; //And now we don't
您可以通过这种方式制作整个函数库,然后通过一次操作将它们删除。例子:
var MyMath = {};
MyMath.abs = function(a) {
return (a<0)?-a:a;
};
MyMath.min = function(a,b) {
return a>b?b:a;
}; //MyMath uses some memory.
alert(MyMath.min(5,10));
MyMath = null; //Now it does not
因此,将所有库包装到对象中,并在需要时卸载这些对象。
添加:
当您的浏览器看到一些新的 Javascript 代码时,它会立即执行所有这些代码。它也确实将其保存在内存中,但不再使用它(基本上它的存储方式hello
与存储在 中的方式相同<div>hello</div>
)。因此,最好的解决方案是:
1)<script>
动态添加标签以按需加载所需的Javascript文件。它看起来像:
if (MyMathLibrary == null || MyMathLibrary == undefined) {
createScriptElementForMathLibrary();
}
alert(MyMathLibrary.calculateEnthropyOfTheUniverse());
2) 每当您不再需要该库时,您只需MyMathLibrary = null
. 此时你也可以从 DOM 中删除它,它不会造成任何伤害,正如我所说,此时它只不过是不可见的 div。
但老实说,你确定这值得费心吗?现在人们纯粹用 Javascript 编写3D 射击游戏,并且计算机具有 4-16 GB 的内存。此外,通常的做法是首先制作一个工作程序并仅在它滞后时才进行优化。否则,您很可能会花费一个月的时间来做一些用户永远不会注意到的事情。