关闭

理解并解决IE的内存泄漏方式

标签: iebuttonnullfunctionhtmldiv
677人阅读 评论(0) 收藏 举报
分类:

http://birdshome.cnblogs.com/archive/2006/06/17/cross_page_leaks.html

code sample:

html>
    
<head>
        
<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>
        
<div id="hostElement"></div>
    
</body>
</html>

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:148137次
    • 积分:2315
    • 等级:
    • 排名:第16142名
    • 原创:72篇
    • 转载:57篇
    • 译文:0篇
    • 评论:0条
    文章分类