-
Notifications
You must be signed in to change notification settings - Fork 1
/
memory-leak.html
73 lines (51 loc) · 1.47 KB
/
memory-leak.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<html>
<head>
<script>
/*
// 不会泄露
window.onload = function(){
function add() {
var el = document.createElement('div')
el.innerHTML = "xxx"
el.addEventListener('click', function(){
var str1 = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
var str2 = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
alert('click')
})
document.body.appendChild(el)
setTimeout(function(){
document.body.removeChild(document.body.children[0])
}, 10000)
}
setTimeout(function(){
for (var i=0;i<5000;i++) add()
}, 10000)
}
*/
window.arr = []
function clickHandler() {
var str1 = Array(5000).fill('x')
var str2 = Array(5000).fill('x')
alert('click')
}
window.onload = function(){
function add() {
var el = document.createElement('div')
el.innerHTML = "xxx"
el.addEventListener('click', clickHandler)
document.body.appendChild(el)
// 会泄露
arr.push(clickHandler)
}
setTimeout(function(){
for (var i=0;i<500;i++) add()
}, 2000)
setTimeout(function(){
//for (var i=0;i<5000;i++) document.body.removeChild(document.body.children[0])
document.body.innerHTML = ""
}, 6000)
}
</script>
</head>
<body></body>
</html>