Created
June 25, 2013 09:28
-
-
Save oberhamsi/5857176 to your computer and use it in GitHub Desktop.
ie8 fragment leak
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script> | |
<script> | |
var LONG_TEXT = "Die EU-Außenminister haben sich grundsätzlich zur Fortsetzung der Beitrittsverhandlungen mit der Türkei geeinigt. Nach Angaben von Diplomaten gaben sie in Luxemburg grünes Licht zur Eröffnung des Kapitels zur Regionalpolitik. Die offizielle Beitrittsrunde soll aber erst im Herbst nach dem Fortschrittsbericht der EU-Kommission und nach neuerlichen Beratungen der Außenminister stattfinden, wie die irische EU-Ratspräsidentschaft mitteilte.Die EU-Außenminister haben sich grundsätzlich zur Fortsetzung der Beitrittsverhandlungen mit der Türkei geeinigt. Nach Angaben von Diplomaten gaben sie in Luxemburg grünes Licht zur Eröffnung des Kapitels zur Regionalpolitik. Die offizielle Beitrittsrunde soll aber erst im Herbst nach dem Fortschrittsbericht der EU-Kommission und nach neuerlichen Beratungen der Außenminister stattfinden, wie die irische EU-Ratspräsidentschaft mitteilte.Die EU-Außenminister haben sich grundsätzlich zur Fortsetzung der Beitrittsverhandlungen mit der Türkei geeinigt. Nach Angaben von Diplomaten gaben sie in Luxemburg grünes Licht zur Eröffnung des Kapitels zur Regionalpolitik. Die offizielle Beitrittsrunde soll aber erst im Herbst nach dem Fortschrittsbericht der EU-Kommission und nach neuerlichen Beratungen der Außenminister stattfinden, wie die irische EU-Ratspräsidentschaft mitteilte.Die EU-Außenminister haben sich grundsätzlich zur Fortsetzung der Beitrittsverhandlungen mit der Türkei geeinigt. Nach Angaben von Diplomaten gaben sie in Luxemburg grünes Licht zur Eröffnung des Kapitels zur Regionalpolitik. Die offizielle Beitrittsrunde soll aber erst im Herbst nach dem Fortschrittsbericht der EU-Kommission und nach neuerlichen Beratungen der Außenminister stattfinden, wie die irische EU-Ratspräsidentschaft mitteilte.Die EU-Außenminister haben sich grundsätzlich zur Fortsetzung der Beitrittsverhandlungen mit der Türkei geeinigt. Nach Angaben von Diplomaten gaben sie in Luxemburg grünes Licht zur Eröffnung des Kapitels zur Regionalpolitik. Die offizielle Beitrittsrunde soll aber erst im Herbst nach dem Fortschrittsbericht der EU-Kommission und nach neuerlichen Beratungen der Außenminister stattfinden, wie die irische EU-Ratspräsidentschaft mitteilte.Die EU-Außenminister haben sich grundsätzlich zur Fortsetzung der Beitrittsverhandlungen mit der Türkei geeinigt. Nach Angaben von Diplomaten gaben sie in Luxemburg grünes Licht zur Eröffnung des Kapitels zur Regionalpolitik. Die offizielle Beitrittsrunde soll aber erst im Herbst nach dem Fortschrittsbericht der EU-Kommission und nach neuerlichen Beratungen der Außenminister stattfinden, wie die irische EU-Ratspräsidentschaft mitteilte." | |
// calling destroyChildren(fragment) | |
// breaks the parentNode relation between | |
// the fragment and its children. | |
var destroyChildren = function(node) { | |
var c; | |
while (c = node.lastChild) { | |
// http://msdn.microsoft.com/en-us/library/ie/ms536708(v=vs.85).aspx | |
c.removeNode(false) | |
} | |
} | |
$(document).ready(function() { | |
var $container = $('#container'); | |
$('#create-btn').click(function() { | |
for (var i = 0; i<10; i++) { | |
var frag = document.createDocumentFragment(); | |
var div = document.createElement('div'); | |
// add some text to make the leak more obvious | |
div.innerText = LONG_TEXT; | |
frag.appendChild(div); | |
// set to true to do proper cleanup | |
if (false) { | |
destroyChildren(frag) | |
} | |
frag = null; | |
} | |
}); | |
}); | |
</script> | |
<html> | |
<button id="create-btn" type="button">Create 10 elements and empty() their parent</button> | |
<div id="container"> | |
</div> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment