亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

IE下使用jQuery重置iframe地址時內存泄露問題解決辦法

2019-11-20 13:13:07
字體:
來源:轉載
供稿:網友

頁面中有個iframe:

復制代碼 代碼如下:

 <iframe src='a.html'></iframe>
<button>測試IFRAME泄露</button>

其中a.html內容如下:

復制代碼 代碼如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="jquery/jquery.min.js"></script>
<style>
.hack{
 /* 1.所有瀏覽器都有效 */
 background-color:green;
 /* 2.IE8~IE10,Opera有效,但是Opera兼容性可以不考慮 */
 background-color:blue/0;
 /* 3.IE9~IE10有效,與2組合,在2中先寫針對IE8的,在此條中針對IE9|IE10 */
 background-color:red/9/0;
 /* 4.IE7有效,與23組合能區分出IE7/IE8/(IE9|IE10) */
 +background-color:yellow;
}
/* 針對IE10+ */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { 
 .hack{
  background-color:pink;
 }
}
 
</style>
</head>
<body>

后綴"/9"  IE6/IE7/IE8/IE9/IE10都生效
后綴"/0"  IE8/IE9/IE10都生效,是IE8/9/10的hack
后綴"/9/0"  只對IE9/IE10生效,是IE9/10的hack
前綴"*"  對IE7有效
前綴"+"  對IE7有效
選擇器前綴 @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none)
   針對IE10有效

復制代碼 代碼如下:

<input type='text' value='中文'></input>
<div class='hack' style="width:100px;
 height:100px;"></div>
<div id="1" style="padding:5px;position:relative;background-color:green;margin:10px;border:20px solid red;width:100%;height:200px;">
</div>
<div id="2"></div>
<span>SPAN</span>
</body>
</html>

b.html內容如下:

復制代碼 代碼如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="jquery/jquery.min.js"></script>
</head>
<body>
<span>SPAN</span>
</body>
</html>

網上有傳,如下寫法可降低內存泄露:

復制代碼 代碼如下:

 var frameDom = $('iframe:eq(0)')[0];
 var frameWin = frameDom.contentWindow;
 
 try{
      frameWin.document.write('');
      frameWin.document.clear();
 }catch(e){};
 frameDom.src = 'b.html';

那么效果怎樣呢?

寫法一:直接設置URL

復制代碼 代碼如下:

var flag = true;
 var frameDom = $('iframe:eq(0)')[0];
 $('button').on('click',function(){
  if(flag){
   var frameDom = $('iframe:eq(0)')[0];
   var frameWin = frameDom.contentWindow;
   /*
   try{
    frameWin.document.write('');
    frameWin.document.clear();
      }catch(e){};
      */
      frameDom.src = 'b.html';
   flag = false;
  }else{
   var frameDom = $('iframe:eq(0)')[0];
   var frameWin = frameDom.contentWindow;
   /*
   try{
    frameWin.document.write('');
    frameWin.document.clear();
      }catch(e){};
      */
      frameDom.src = 'a.html';
   flag = true;
  }
  //$('#console').append(flag ? '切換到a.html':'切換到b.html');
 });

使用sIEve測試:每切換一次,#leaks增加28左右。

寫法二:按網傳寫法

復制代碼 代碼如下:

<script>
 var flag = true;
 var frameDom = $('iframe:eq(0)')[0];
 $('button').on('click',function(){
  if(flag){
       var frameDom = $('iframe:eq(0)')[0];
       var frameWin = frameDom.contentWindow;
       try{
           frameWin.document.write('');
           frameWin.document.clear();
       }catch(e){};
       frameDom.src = 'b.html';
       flag = false;
  }else{
       var frameDom = $('iframe:eq(0)')[0];
       var frameWin = frameDom.contentWindow;
       try{
          frameWin.document.write('');
          frameWin.document.clear();
       }catch(e){};
       frameDom.src = 'a.html';
       flag = true;
  }
  //$('#console').append(flag ? '切換到a.html':'切換到b.html');
 });
</script>

使用sIEve測試:每切換一次,#leaks增加28左右。與寫法一并沒有什么差別

寫法三:

復制代碼 代碼如下:

var flag = true;
 var frameDom = $('iframe:eq(0)')[0];
 $('button').on('click',function(){
  if(flag){
   /*
   try{
    frameDom.contentWindow.document.write('');
    frameDom.contentWindow.document.clear();
    frameDom.contentWindow.close();
      }catch(e){};
      */
      $('iframe:eq(0)').remove();
      $('body').append("<iframe src='b.html'></iframe>");
   flag = false;
  }else{
   /*
   try{
    frameDom.contentWindow.document.write('');
    frameDom.contentWindow.document.clear();
    frameDom.contentWindow.close();
      }catch(e){};
      */
      $('iframe:eq(0)').remove();
      $('body').append("<iframe src='a.html'></iframe>");
   flag = true;
  }
 });

使用sIEve測試:#leaks平均為 3,與前兩種相差巨大

寫法四:注意到,寫法三中注釋了一段代碼,去掉注釋會怎樣?

復制代碼 代碼如下:

var flag = true;
 var frameDom = $('iframe:eq(0)')[0];
 $('button').on('click',function(){
  if(flag){
   try{
    frameDom.contentWindow.document.write('');
    frameDom.contentWindow.document.clear();
    frameDom.contentWindow.close();
      }catch(e){};
      $('iframe:eq(0)').remove();
      $('body').append("<iframe src='b.html'></iframe>");
   flag = false;
  }else{
   try{
    frameDom.contentWindow.document.write('');
    frameDom.contentWindow.document.clear();
    frameDom.contentWindow.close();
      }catch(e){};
      $('iframe:eq(0)').remove();
      $('body').append("<iframe src='a.html'></iframe>");
   flag = true;
  }
 });

此寫法與寫法3并沒有明顯差別,每次切換#leaks仍然增加3左右

因此可以得出結論,最好的解決重置iframe地址內存泄露辦法就是 把它干掉,再添加一個!

網傳不一定靠譜啊

注:本機測試環境為 WIN7 x64 IE9

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩成人在线播放| 国内精品久久久久| 欧美午夜激情小视频| 亚洲国产精品yw在线观看| 中文字幕av一区二区| 久久综合亚洲社区| 91精品国产综合久久香蕉| 欧美成人激情视频| 欧美精品www在线观看| 国产日韩欧美在线观看| 欧美日韩国产一区二区| 久久久这里只有精品视频| 精品夜色国产国偷在线| 国产欧美在线观看| 亚洲福利影片在线| 国产精品人成电影| 欧美日韩第一视频| 久久久女人电视剧免费播放下载| 欧美性xxxx18| 国产主播欧美精品| 亚洲一区中文字幕在线观看| 精品国产一区二区在线| 久久久久久网站| 国产精品主播视频| 欧美精品久久久久久久久| 成人做爰www免费看视频网站| 国产精品久久久久久久久久久久久久| 欧美精品在线观看91| 成人免费网站在线| 欧美日韩精品在线观看| 亚洲自拍偷拍色片视频| 国产精品一二三在线| 色偷偷综合社区| 日韩免费不卡av| 日韩av电影在线播放| 久久久影视精品| 日本高清视频一区| 久久影视电视剧免费网站| 欧美一级大片在线免费观看| 92裸体在线视频网站| 欧美日韩国产丝袜美女| 日本不卡高字幕在线2019| 成人黄色大片在线免费观看| 久久视频在线免费观看| 91综合免费在线| 成人免费视频在线观看超级碰| 精品免费在线视频| 国产精品久久久久久网站| 成人免费观看49www在线观看| 亚洲人成在线播放| 国模精品一区二区三区色天香| 亚洲欧洲一区二区三区久久| 日本aⅴ大伊香蕉精品视频| 丝袜亚洲另类欧美重口| 国内精品久久影院| 热久久99这里有精品| 中文字幕av一区二区三区谷原希美| 久久久免费精品视频| 欧美整片在线观看| 隔壁老王国产在线精品| www.欧美免费| 97精品国产97久久久久久| 欧美精品在线免费观看| 国产精品黄色av| 久久99久国产精品黄毛片入口| 欧美有码在线观看| 日av在线播放中文不卡| 久久天天躁夜夜躁狠狠躁2022| 欧美一级在线播放| 疯狂欧美牲乱大交777| 欧美成人亚洲成人日韩成人| 久热精品视频在线| 国产精品扒开腿做爽爽爽的视频| 国产精品成人免费视频| 91最新国产视频| 日韩av大片在线| 国产+人+亚洲| 欧美激情三级免费| 日韩av在线直播| 91老司机精品视频| 97精品欧美一区二区三区| 欧美性猛交xxxx乱大交蜜桃| 欧美日韩国产精品一区二区三区四区| 国产91在线播放精品91| 国产日韩欧美夫妻视频在线观看| 日韩av免费在线观看| 亚洲人成亚洲人成在线观看| 国产一区二区三区日韩欧美| 97国产真实伦对白精彩视频8| 亚洲精品xxxx| 中文精品99久久国产香蕉| 国产成人精品在线| 久久久久久高潮国产精品视| 亚洲深夜福利视频| 久久久久久久色| 97国产成人精品视频| 91精品国产91久久久久久最新| 国产日韩欧美在线视频观看| 欧美成人精品一区| 亚洲直播在线一区| 国产九九精品视频| 国产精品jizz在线观看麻豆| 蜜臀久久99精品久久久久久宅男| 亚洲第一黄色网| 成人h视频在线观看播放| 91精品中文在线| 一区二区三区回区在观看免费视频| 久久久欧美一区二区| 国产欧美日韩专区发布| 国精产品一区一区三区有限在线| 亚洲永久在线观看| 日韩电视剧免费观看网站| 国产高清视频一区三区| 久久久久久久久亚洲| 91精品91久久久久久| 精品国偷自产在线视频| 92国产精品久久久久首页| 欧美在线亚洲在线| 国产91精品久| 亚洲精品美女免费| 亚洲欧美精品suv| 精品日本美女福利在线观看| 亚洲国产精品美女| 欧美日韩精品在线播放| 成人黄色av免费在线观看| 97在线免费观看视频| 日韩中文字幕视频| 久久久久久亚洲精品| 日韩av电影免费观看高清| 亚洲色图50p| 久久手机免费视频| 欧美另类老肥妇| 国产免费一区二区三区在线观看| 国产精品久久久久一区二区| 国产日韩欧美一二三区| 日韩av观看网址| 亚洲男人天堂2023| 欧美成人精品三级在线观看| 播播国产欧美激情| 欧美激情一二三| 亚洲电影免费观看高清完整版在线| 亚洲人成电影网| 亚洲欧美成人精品| 69**夜色精品国产69乱| 精品亚洲一区二区三区| 国产精品一区二区久久久| 国产成人精品免高潮费视频| 欧美黄色三级网站| 午夜剧场成人观在线视频免费观看| 成人啪啪免费看| 中文字幕久久久av一区| 亚洲自拍偷拍色片视频| 欧美性xxxx| 久久精品国产亚洲精品2020| 国产不卡精品视男人的天堂| 亚洲一区二区三区在线免费观看| 色综合久久天天综线观看| 成人久久久久爱| 国产亚洲精品成人av久久ww| 一本色道久久综合狠狠躁篇的优点| 精品国产鲁一鲁一区二区张丽| 国产91|九色| 亚洲欧美在线免费| 国产成人精品a视频一区www|