-
Notifications
You must be signed in to change notification settings - Fork 0
/
page1.html
94 lines (82 loc) · 2.39 KB
/
page1.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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>page1</title>
</head>
<body>
<!-- clock -->
<p><span id="clock"></span> milliseconds since January 1970</p>
<script>
setInterval(function() {
var d = new Date();
document.getElementById("clock").innerHTML = d + "<br>" + d.getTime();
}, 100); // Update 10 times a second
</script>
<!-- spin -->
<p><button onclick="spin1()">1. synchronous loop, update once</button> <span id="result1"></span></p>
<p><button onclick="spin2()">2. synchronous loop, update every time</button> <span id="result2"></span></p>
<p><button onclick="spin3()">3. setImmediate</button> <span id="result3"></span></p>
<p><button onclick="spin4()">4. setTimeout</button> <span id="result4"></span></p>
<p><button onclick="spin5()">5. process.nextTick</button> <span id="result5"></span></p>
<p><button onclick="spin6()">6. Promise</button> <span id="result6"></span></p>
<script>
function spin1() {
var count = 0;
var start = Date.now();
while (Date.now() < start + 1000) {
count++;
}
document.getElementById("result1").innerHTML = count;
}
function spin2() {
var count = 0;
var start = Date.now();
while (Date.now() < start + 1000) {
count++;
document.getElementById("result2").innerHTML = count;
}
}
function spin3() {
var count = 0;
var start = Date.now();
f();
function f() {
count++;
if (Date.now() < start + 1000) setImmediate(f);
else document.getElementById("result3").innerHTML = count;
}
}
function spin4() {
var count = 0;
var start = Date.now();
f();
function f() {
count++;
if (Date.now() < start + 1000) setTimeout(f, 0);
else document.getElementById("result4").innerHTML = count;
}
}
function spin5() {
var count = 0;
var start = Date.now();
f();
function f() {
count++;
if (Date.now() < start + 1000) process.nextTick(f);
else document.getElementById("result5").innerHTML = count;
}
}
function spin6() {
var count = 0;
var start = Date.now();
f();
function f() {
count++;
if (Date.now() < start + 1000) Promise.resolve().then(f);
else document.getElementById("result6").innerHTML = count;
}
}
</script>
</body>
</html>