咖啡伴侣

呆在上海
posts - 163, comments - 156, trackbacks - 0, articles - 2

IE下 eval 内存泄漏

Posted on 2012-08-15 16:53 oathleo 阅读(1607) 评论(1)  编辑  收藏 所属分类: Web
下面2段代码是测试代码,IE9下测试
都有泄漏,非IE浏览器没问题。困惑


每秒eval,400个方法调用;200多K的内存泄漏,

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>eval 测试</title>
        <script>

    
var afunction = function(_name,_mask){
         
return false;
    }
    
    
var bfunction = function(_color){
    }
    
    
var cfunction = function(_color){
    }

var _action = function(){

    
for(var i=0;i<40;i++){
    
     
         
var _script = "if(afunction('111','222')) bfunction('0xCDCD00'); else if(afunction('111','222')) bfunction('0xCDCD00'); else if(afunction('111','222')) bfunction('0xCDCD00'); else if(afunction('111','222')) bfunction('0xCDCD00'); else if(afunction('111','222')) bfunction('0xCDCD00');";
         _script 
+= "if(afunction('222','333')) cfunction('0xCDCD00'); else if(afunction('222','333')) cfunction('0xCDCD00');  else if(afunction('222','333')) cfunction('0xCDCD00'); else if(afunction('222','333')) cfunction('0xCDCD00'); else if(afunction('222','333')) cfunction('0xCDCD00');";
         
var _func = new Function(_script);
          _func();
        
    }
 
}

window.onload 
= function() {
    setInterval(_action,
1000);
};

</script>

    </head>
    <body>
        
    </body>
</html>
2.



<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>eval 测试</title>
        <script>

var _action = function(){

    
var afunction = function(_name,_mask){
         
return false;
    }
    
    
var bfunction = function(_color){
    }
    
    
var cfunction = function(_color){
    }
    
    
for(var i=0;i<40;i++){
         
var _script = "if(afunction('111','222')) bfunction('0xCDCD00'); else if(afunction('111','222')) bfunction('0xCDCD00'); else if(afunction('111','222')) bfunction('0xCDCD00'); else if(afunction('111','222')) bfunction('0xCDCD00'); else if(afunction('111','222')) bfunction('0xCDCD00');";
         _script 
+= "if(afunction('222','333')) cfunction('0xCDCD00'); else if(afunction('222','333')) cfunction('0xCDCD00');  else if(afunction('222','333')) cfunction('0xCDCD00'); else if(afunction('222','333')) cfunction('0xCDCD00'); else if(afunction('222','333')) cfunction('0xCDCD00');";
         eval(_script);
    }
 
}

window.onload 
= function() {
    setInterval(_action,
1000);
};

</script>

    </head>
    <body>
        
    </body>
</html>

Feedback

# re: IE下 eval 内存泄漏  回复  更多评论   

2012-08-15 19:18 by 太阳山
调用走先

只有注册用户登录后才能发表评论。


网站导航: