最近读了几篇关于内存泄漏的一些文章,是懂非懂 ...
$(function() {
a();
});
function a() {
var num = 10; //这里的num 是否会一直存在缓存? 能否清除?
var c = function(para) {
alert(num + para);
};
b(c);
num = null; //这样能清除?
}
function b(c) {
c(5);
}还有一般上ajax从数据库调回来的数据应该缓存在哪里? js 全局变量?
闭包内存泄漏
$(function() {
a();
});
function a() {
var num = 10; //这里的num 是否会一直存在缓存? 能否清除?
var c = function(para) {
alert(num + para);
};
b(c);
num = null; //这样能清除?
}
function b(c) {
c(5);
}还有一般上ajax从数据库调回来的数据应该缓存在哪里? js 全局变量?
闭包内存泄漏
num是局部变量,是a运行时VO对象的属性,当a运行完,没有全局变量访问VO对象,因此VO对象会被垃圾回收,num是它的属性自然也被销毁,不需要写num = null。
num是局部变量,是a运行时VO对象的属性,当a运行完,没有全局变量访问EC对象,因此EC对象会被垃圾回收,而EC对象里存储着VO对象,num又是VO对象的属性,因此他们都会被销毁,不需要写num = null。
都是自动销毁的 之前做的一个项目有内存泄露的问题 是因为调用了ocx插件
二进制数据被保存了
xxx = null 在这个时候才有用
http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html
我是从这里学的。分享一下