IE8内存泄漏Bug及其解决办法
发布时间
阅读量:
阅读量
0、背景
目前在公司某系统中注意到,在XP环境下运行IE8会导致长时间使用产生大量未被回收的垃圾数据。通过内存分析工具对Jprofiler进行了详细的分析后发现了一个潜在缺陷(BUG)。随后进行了初步测试验证该缺陷的存在性。在此基础上参考了许多已有的解决方案并综合各家之长并提出了一种新的解决办法,并对各位提供帮助的大佬表示衷心感谢!
1、问题分析
IE在iframe元素的回收机制上存在缺陷,在常规操作中应将该元素的src属性值更改为"abort:blank"并手动移除该iframe元素;随后清除脚本引用其变量并调用CollectGarbage()方法即可避免因iframe无法正常回收而导致的内存泄漏问题。- 在 IE8 浏览器中,在创建某些
DOM节点时所占用的内存无法被释放;即使这些节点被删除也无法使相关内存得到回收;常见的内存泄漏节点类型包括:表单(form)、按钮(button)、输入框(input)、选择器(select)、文本字段(textarea)、超链接(a)以及图片(img)等。
2、Javascript 的垃圾回收机制
JavaScript拥有自动垃圾回收机制(GC: Garbage Collection),换句话说,在运行环境中将负责处理动态分配内存空间。
全部评论 (0)
还没有任何评论哟~
