有谁知道javascript的内存释放是怎么操作的嘛?
一般网上都是说将对象或者某个值赋值null
然后调用CollectGarbage()函数,
可是又有认说CollectGarbage()函数是不安全的,而且也不能起到真正释放的目的,
有哪位高手知道呢?
一般网上都是说将对象或者某个值赋值null
然后调用CollectGarbage()函数,
可是又有认说CollectGarbage()函数是不安全的,而且也不能起到真正释放的目的,
有哪位高手知道呢?
也可用赋值为null
赋值了null之后内存其实并没有释放,只是将这个内存位置空着,还是占着,当有相同名的变量定义的时候
就会将这个空间分配给他。如果没有用null的话那么内存会分配另外的空间
总的来说内存使用确实小了
但是没有起到回收的功能
我想了解的是js是怎么释放内存
(或许js没有这种机制,除了关闭浏览器或者最小化浏览器的时候)
1.手动设置为null,当把一个变量手动设置为null的时候,系统会回收2.无关联引用的变量,系统检查到自动回收,比如var a=new Object() 如果无任何变量声名是指向他的话,在无用的时候就自动回收.但是如果var b=a; b在做操作,由于b对a有引用,所以a无法回收,要等b回收以后a方可回收3.生命周期结束,既退出栈的时候,回收.一般就是我们说的局部变量
可是我在开发种遇到的不是这种问题,而是要重复的调用js的函数,每次都有很多对象生成,
在与服务器交互的时候使用的ajax,数据传输会比较大,服务器发往客户端的是xml文档对象,当然使用之后也要对这个对象进行销毁,否则会很占内存,可是不知道怎么去释放。直接赋值null没说明效果
还是再调用CollectGarbage()函数进行来回收?
还是系统自动回收?