Skip to content

Instantly share code, notes, and snippets.

@oberhamsi
Created June 25, 2013 09:28
Show Gist options
  • Save oberhamsi/5857176 to your computer and use it in GitHub Desktop.
Save oberhamsi/5857176 to your computer and use it in GitHub Desktop.
ie8 fragment leak
<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