loading tweet...

关于ie中jscript的内存泄漏

July 19th, 2006 | htmlor | javascript | 2 Comments »

关注这个问题有一阵子了。网上找找,Douglas Crockford 的文章《JScript Memory Leaks》有详细说明,鸟食轩也有一系列相关文章。

以下是对《JScript Memory Leaks》一文的节选翻译,大致说明了ie内存泄漏的原因。

“microsoft的ie浏览器有许多内存泄漏问题,最严重的就是使用jscript交互引发。当dom节点包含了一个对javascript对象(如事件处理函数onclick)的引用,同时该javascript对象也引用此节点时(如鼠标单击时隐藏节点),就形成了一个循环结构。它本身没有问题——当对dom节点和事件处理函数的引用消失,garbage collector(一个自动的内存资源管理器)会回收它们,使它们占用的空间再分配。javascript的garbage collector理解循环,不会产生问题。不幸的是,ie的dom不归jscript管。ie有自己的内存管理器却不理解循环,因此产生混乱。结果,当循环出现,却没有内存回收,没被回收的内存就泄漏了。时间长了,就会导致内存不足,当内存空间涨满,浏览器就死了。”

注:“javascript”指的是语言本身,“jscript”是microsoft的类似javascript脚本语言。

Crockford 建议的解决方法是:在删除含有对javascript对象引用的dom节点之前,把属性中类型为function的全部清除(设为null)。我试过,确实有效。


Page 2 of 212

winzip freeware

winzip freeware

winrar free download

winrar free download

winzip registration code

winzip registration code

free winrar

free winrar

winrar free

winrar free

windows 7 crack

windows 7 crack

winrar download free

winrar download free

windows 7 ultimate product key

windows 7 ultimate product key

windows 7 activation crack

windows7 activation crack

winzip free download

winzip free download

winzip activation code

winzip activation code

download winrar free

download winrar free

windows 7 key generator

windows 7 key generator

windows xp product key

windows xp product key

winzip free download full version

winzip free download full version

free winzip

free winzip

free winrar download

free winrar download

windows 7 product key

windows 7 product key