问一个很弱的问题,获取DOM元素后,不再使用时需要显性置为null吗? 问一个很弱的问题,获取DOM元素后,不再使用时需要显性置为null吗?比方 var el = document.getElementById('xxx');这个 el 在不使用后,需要马上给它设置成 null 吗,还是等待自动回收。另外,js对这种对象是在什么时候自动回收的。。请指教~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 局部变量 自己就可以回收了(如果没有被其他函数里面引用,就是闭包那种,那种变量GC不回收)GC的回收机制是 隔一段时间回收不用的局部变量咯 (多长时间我也不知道 )因为是单线程 所以可能会给当前正在运行的程序带来点延迟你的问题是什么时候回收 其实一直在回收 具体是什么时间,我不知道啊如果设置成null了 其实这个变量还是存在啊 那个变量的值是null只是这样就断开了于变量与dom的关联 听说是因为ie6的循环引用才需要断开所以我认为把变量设置成了null 还是要等GC 才能真正的从内存中删除以上都是个人见解......一篇文章http://www.cnblogs.com/hyddd/archive/2013/02/07/2908598.html 无需,赋值为null也无用,当dom加入到页面中,就是页面对象的成员,会一直生存,在从页面中移除前,资源是无法被释放的.仅仅把所谓的"变量"释放是无意义的,变量引用的资源才是根本,某些情况下把变量赋值为null是为了快速回收资源(在对象没有被还在生存的变量引用时,对象占用的资源会自动回收),当即使赋值为null也无法释放资源时,赋值为null是无意义的 我没说没必要 你别误会啊看看这篇文章啊 大哥http://blog.csdn.net/dead_of_winter/article/details/2277673 问题1:ie9之前的话 ,可以使用(如果对象很多的话,鼓励使用),因为ie9之前的 dom,bom 都是采用引用计数的策略来垃圾收集的。所谓引用技术:跟踪记录每个值被引用的次数。当声明一个变量并讲一个引用类型的值复制给他时,这个指的引用次数就+1.如果同一个值又被赋值给其他的变量,这+1。反之,如果如果包含对这个值引用的变量得到了另外一个值,那么引用计数-1.当引用计数是0的时候 ,就说明没有引用这个值的变量了,那么垃圾回收的时候 就可以释放他的内存。对于普通的变量 没有必要回收。问题2:ie7之前的gc时间是根据内存分配量运行的。具体是 256个变量,4096个对象字面量或者数组或者64kb的字符串。如果达到其中任何一个指标 ,这gc就运行一次。ie7后做了修正:临界值改成动态的了。初始值与ie6一样。如果gc回收的内存分配量地域15%,则上述的指标的临界值就会加倍。如果回收了85%的内存分配量,则将各种临界值重置会默认值 表单验证 jquery click传参的问题 火狐下正常,IE7下报错 如果 li里面的UL没有li就把她的class设为空 一个简单的JAVASCRIPT在线等待解决。 (在线等)页面onload()事件时,自动点击页面的button 急:请教一个vml中文字摆放位置的问题 带数据库的二级联动如何做?100分 是否有个round函数可以把文本框中的数值格式化为带两位小数的样式 如何取Window.open打开的页面里DIV的内容??? 请教IE不断刷新页面,偶然会发生js脚本报错 一个JS问题,有兴趣的哥们可以一起讨论下
因为是单线程 所以可能会给当前正在运行的程序带来点延迟
你的问题是什么时候回收 其实一直在回收 具体是什么时间,我不知道啊
如果设置成null了 其实这个变量还是存在啊 那个变量的值是null
只是这样就断开了于变量与dom的关联 听说是因为ie6的循环引用才需要断开
所以我认为把变量设置成了null 还是要等GC 才能真正的从内存中删除以上都是个人见解......一篇文章
http://www.cnblogs.com/hyddd/archive/2013/02/07/2908598.html
仅仅把所谓的"变量"释放是无意义的,变量引用的资源才是根本,某些情况下把变量赋值为null是为了快速回收资源(在对象没有被还在生存的变量引用时,对象占用的资源会自动回收),当即使赋值为null也无法释放资源时,赋值为null是无意义的
所谓引用技术:跟踪记录每个值被引用的次数。当声明一个变量并讲一个引用类型的值复制给他时,这个指的引用次数就+1.如果同一个值又被赋值给其他的变量,这+1。反之,如果如果包含对这个值引用的变量得到了另外一个值,那么引用计数-1.
当引用计数是0的时候 ,就说明没有引用这个值的变量了,那么垃圾回收的时候 就可以释放他的内存。
对于普通的变量 没有必要回收。
问题2:ie7之前的gc时间是根据内存分配量运行的。具体是 256个变量,4096个对象字面量或者数组或者64kb的字符串。如果达到其中任何一个指标 ,这gc就运行一次。
ie7后做了修正:临界值改成动态的了。初始值与ie6一样。如果gc回收的内存分配量地域15%,则上述的指标的临界值就会加倍。如果回收了85%的内存分配量,则将各种临界值重置会默认值