解决IE6中元素插入顺序造成的内存泄漏
来源:互联网 发布:大学生找工作软件 编辑:程序博客网 时间:2024/06/04 18:59
下面是修改自微软的测试代码 点击MemoryFix后 Memory Leaking Insert也不会造成内存泄漏
</html>
<head>
<script>
function MemoryFix(){
var garbageBox=document.createElement("div");
garbageBox.style.display="none";
document.body.appendChild(garbageBox);
var createElement=document.createElement;
document.createElement=function(){
var obj=Function.prototype.apply.apply(createElement,[document,arguments]);
garbageBox.appendChild(obj);
return obj;
}
}
</script>
<script language="JScript">
function LeakMemory()
{
var hostElement = document.getElementById("hostElement");
// Do it a lot, look at Task Manager for memory response
for(i = 0; i < 5000; i++)
{
var parentDiv =
document.createElement("<div onClick='foo()'>");
var childDiv =
document.createElement("<div onClick='foo()'>");
// This will leak a temporary object
parentDiv.appendChild(childDiv);
hostElement.appendChild(parentDiv);
hostElement.removeChild(parentDiv);
parentDiv.removeChild(childDiv);
parentDiv = null;
childDiv = null;
}
hostElement = null;
}
function CleanMemory()
{
var hostElement = document.getElementById("hostElement");
// Do it a lot, look at Task Manager for memory response
for(i = 0; i < 5000; i++)
{
var parentDiv =
document.createElement("<div onClick='foo()'>");
var childDiv =
document.createElement("<div onClick='foo()'>");
// Changing the order is important, this won't leak
hostElement.appendChild(parentDiv);
parentDiv.appendChild(childDiv);
hostElement.removeChild(parentDiv);
parentDiv.removeChild(childDiv);
parentDiv = null;
childDiv = null;
}
hostElement = null;
}
</script>
</head>
<body>
<button onclick="LeakMemory()">Memory Leaking Insert</button>
<button onclick="CleanMemory()">Clean Insert</button>
<button onclick="MemoryFix()">MemoryFix</button>
<button onclick="CollectGarbage()">CollectGarbage</button>
<div id="hostElement"></div>
</body>
</html>
- 解决IE6中元素插入顺序造成的内存泄漏
- IBOutlet造成的内存泄漏
- cdbexception造成的内存泄漏
- MVP造成的内存泄漏
- Andorid中Handler造成的内存泄漏浅析与处理
- ios-IBOutlet造成的内存泄漏
- java PreparedStatement造成内存泄漏 的解决方法
- 单例造成的内存泄漏
- 匿名内部类造成的内存泄漏
- 会造成内存泄漏的操作
- 关于造成内存泄漏的一些原因
- inputMethodManager造成的内存泄漏问题
- C++造成内存泄漏的原因汇总:
- 大量数据生成excel时候造成jvm内存泄漏问题的解决与测
- 大量数据生成excel时候造成jvm内存泄漏问题的解决与测
- IE6出了内存泄漏的补丁
- Android内存泄漏(线程造成的内存泄漏与资源未关闭造成的内存泄漏)
- 在单例模式中如何避免传入非Application的Context造成的内存泄漏
- c#与Java的一些区别!
- people walk by pv3d
- Adobe 成功案例之 ebay项目构建
- [转]终于放弃使用Linux作为开发桌面了
- 一篇不错的关于堆和栈内存的分析
- 解决IE6中元素插入顺序造成的内存泄漏
- 关于ASP.NET读取XML新闻的问题
- IE内存泄漏的问题
- CMsChart使用方法
- 学习编程的心得简谈
- 蓝屏原因解读
- LINUX下安装ORACLE数据库以及OCI的使用方法
- java类加载机制的简单知识
- 失业了,失业了!