누출은 아주 쉽게 생성 할 수 있습니다. "TestImage0.jpg", "TestImage1.jpg", ... "TestImage9.jpg"라는 큰 이미지 목록 옆에 HTML을 놓습니다. 페이지를 클릭 할 때마다 메모리가 누출됩니다 (테스트를 위해 sIEve를 사용했습니다). 크기 조정 CSS가 제거되면 페이지가 누출되지 않습니다. 누구나 이것이 IE8 문제인지 또는 내 실험에 결함이 있는지 확인할 수 있습니까?누군가 IE8 메모리 누수인지 확인할 수 있습니까?
테스트 코드
<html>
<head>
<title>Memory Leak Testing</title>
<script type="text/javascript">
var count = 0;
window.onload =
function() {
AppendImage();
window.document.body.onclick = ReplaceImage;
}
var ReplaceImage = function() {
window.document.body.removeChild(document.getElementById('MemTestObject' + count));
count++;
if (count > 9) {
alert('No more images to load.');
} else {
AppendImage();
}
}
var AppendImage = function() {
var imageObject = document.createElement('img');
imageObject.id = 'MemTestObject' + count;
imageObject.className = 'MemTestObject';
imageObject.src = 'TestImage' + count + '.jpg';
window.document.body.appendChild(imageObject);
}
</script>
<style type="text/css">
.MemTestObject {
width: 140px;
height: 178px;
}
</style>
</head>
<body>
<h1>Memory Leak Testing</h1>
</body>
</html>
다른 브라우저를 테스트 해 보셨습니까? –
FF3의 메모리 사용량은 IE8과 거의 같은 속도로 증가합니다. 그러나 FF3은 가비지 수집 라운드를 몇 번 기다린 후에 메모리를 해제합니다. 페이지가 언로드 될 때 IE8은 메모리를 해제하지 않습니다. – JoshNaro
일단 페이지를 닫은 다음 다시 열면 더 많은 메모리가 누출됩니까? – Daemin