问一个很弱的问题,获取DOM元素后,不再使用时需要显性置为null吗?

hanyuxinting 2013-02-18 04:41:28
问一个很弱的问题,获取DOM元素后,不再使用时需要显性置为null吗?

比方 var el = document.getElementById('xxx');

这个 el 在不使用后,需要马上给它设置成 null 吗,还是等待自动回收。

另外,js对这种对象是在什么时候自动回收的。。


请指教~
...全文
320 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaofan_sap 2013-02-18
  • 打赏
  • 举报
回复
问题1:ie9之前的话 ,可以使用(如果对象很多的话,鼓励使用),因为ie9之前的 dom,bom 都是采用引用计数的策略来垃圾收集的。 所谓引用技术:跟踪记录每个值被引用的次数。当声明一个变量并讲一个引用类型的值复制给他时,这个指的引用次数就+1.如果同一个值又被赋值给其他的变量,这+1。反之,如果如果包含对这个值引用的变量得到了另外一个值,那么引用计数-1. 当引用计数是0的时候 ,就说明没有引用这个值的变量了,那么垃圾回收的时候 就可以释放他的内存。 对于普通的变量 没有必要回收。 问题2:ie7之前的gc时间是根据内存分配量运行的。具体是 256个变量,4096个对象字面量或者数组或者64kb的字符串。如果达到其中任何一个指标 ,这gc就运行一次。 ie7后做了修正:临界值改成动态的了。初始值与ie6一样。如果gc回收的内存分配量地域15%,则上述的指标的临界值就会加倍。如果回收了85%的内存分配量,则将各种临界值重置会默认值
wtcsy 2013-02-18
  • 打赏
  • 举报
回复
我没说没必要 你别误会啊 看看这篇文章啊 大哥 http://blog.csdn.net/dead_of_winter/article/details/2277673
hanyuxinting 2013-02-18
  • 打赏
  • 举报
回复
引用 2 楼 wzs_xyz 的回复:
无需,赋值为null也无用,当dom加入到页面中,就是页面对象的成员,会一直生存,在从页面中移除前,资源是无法被释放的. 仅仅把所谓的"变量"释放是无意义的,变量引用的资源才是根本,某些情况下把变量赋值为null是为了快速回收资源(在对象没有被还在生存的变量引用时,对象占用的资源会自动回收),当即使赋值为null也无法释放资源时,赋值为null是无意义的 ……
好的,学习~~~多谢~~
hanyuxinting 2013-02-18
  • 打赏
  • 举报
回复
引用 1 楼 wtcsy 的回复:
局部变量 自己就可以回收了(如果没有被其他函数里面引用,就是闭包那种,那种变量GC不回收) GC的回收机制是 隔一段时间回收不用的局部变量咯 (多长时间我也不知道 ) 因为是单线程 所以可能会给当前正在运行的程序带来点延迟 你的问题是什么时候回收 其实一直在回收 具体是什么时间,我不知道啊 如果设置成null了 其实这个变量还是存在……
嗯嗯,我也是觉得没有必要,想确定一下。多谢。~~ 我看了些关于GC的文字,也没有针对这个做回收的。 我再看看,多谢多谢。
未知数 2013-02-18
  • 打赏
  • 举报
回复
无需,赋值为null也无用,当dom加入到页面中,就是页面对象的成员,会一直生存,在从页面中移除前,资源是无法被释放的. 仅仅把所谓的"变量"释放是无意义的,变量引用的资源才是根本,某些情况下把变量赋值为null是为了快速回收资源(在对象没有被还在生存的变量引用时,对象占用的资源会自动回收),当即使赋值为null也无法释放资源时,赋值为null是无意义的
wtcsy 2013-02-18
  • 打赏
  • 举报
回复
局部变量 自己就可以回收了(如果没有被其他函数里面引用,就是闭包那种,那种变量GC不回收) GC的回收机制是 隔一段时间回收不用的局部变量咯 (多长时间我也不知道 ) 因为是单线程 所以可能会给当前正在运行的程序带来点延迟 你的问题是什么时候回收 其实一直在回收 具体是什么时间,我不知道啊 如果设置成null了 其实这个变量还是存在啊 那个变量的值是null 只是这样就断开了于变量与dom的关联 听说是因为ie6的循环引用才需要断开 所以我认为把变量设置成了null 还是要等GC 才能真正的从内存中删除 以上都是个人见解...... 一篇文章 http://www.cnblogs.com/hyddd/archive/2013/02/07/2908598.html

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧