I have a strange behaviour in (at least) IE11 and Edge (minimaly in Chrome). I create an iFrame and detach it afterwards but memory keeps increasing. In this iFrame only an empty page with javaScript imports is loaded.
I found some suggestions to change src of iFrame to about:blank but it still isn't working. Has anyone an idea what is going wrong?
Edit:
I tried it with the jQuery purgeFrame plugin and changed speed and iteration count.
Since it seems to be mainly a IE11 and Edge problem we also posted it on https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8449104/
The new code for the outer frame is:
<!doctype html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> <script type="text/javascript"> var counter =0; /* * jQuery purgeFrame * A jQuery plugin to clean up Iframes and make IE happy * * Copyright (c) March 2014 Tom Mooney * licensed under the MIT license, http://www.opensource.org/licenses/mit-license.php */ (function ($) { $.fn.purgeFrame = function () { var deferred = purge(this); return deferred; }; function purge($frame) { var len = $frame.length var deferred = $.Deferred(); $frame.one('load', function () { try { $(this.contentWindow).empty(); len -= 1; if (len <= 0) { $(this).remove(); } $frame = null; } finally { deferred.resolve(); } }); //Set src to about:blank to so that contentWindow can be manipulated on cross-domain iframes $frame.attr('src', 'about:blank'); if ($frame.length === 0) { deferred.resolve(); } return deferred.promise(); } }(jQuery)); $(document).ready(function () { var myTimer = setInterval( function(){ var contentContainer = $("#contentDiv"); var iFrame = $('<iframe class="contentFrame" frameborder="0" name="bla" style="overflow:auto; width: 100%; height: 100%;" src="leere.html"></iframe>'); contentContainer.append(iFrame); $(iFrame).purgeFrame().done(function() { console.log("deleted frame"); iFrame = null; }); if (counter == 1000) { clearInterval(myTimer); } counter++; }, 50 ); }); </script> </head> <body> <div id="contentDiv" style="width:100%; height:100%"></div> </body> </html> The loaded html (leere.html)
<!doctype html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css"> <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script> </head> <body> Test </body> </html> Memory Usage in IE11 (3x 1000 cycles)
Memory Usage in Edge (1x 1000 cycles) 
window.opena new window with a fresh memory space and that fails sometimes due to out of memory error or insufficient space error