-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.js
More file actions
55 lines (48 loc) · 1.43 KB
/
main.js
File metadata and controls
55 lines (48 loc) · 1.43 KB
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
var myWorker;
function initWorker() {
if(typeof(Worker) != 'undefined') {
if(typeof(myWorker) == 'undefined') {
var blob = new Blob([document.querySelector('#worker1').textContent]);
var blobURL = window.URL.createObjectURL(blob);
myWorker = new Worker(blobURL);
console.log('[Main]', 'Init Web Worker');
myWorker.onmessage = function(event) {
handleMessage(event);
}
myWorker.onerror = function(event) {
console.log('[Main]', 'Error', event.message, event);
}
}
} else {
console.log("[Main]", "The browser doesn't support web worker");
}
}
function handleMessage(event) {
console.log('[Main]', 'Main Thread receives command: ', event.data.cmd, event.data.msg);
if(event.data.cmd == 'stop') {
console.log('[Main]', 'Web Worker is already stopped');
}
}
function startWorker() {
if(typeof(myWorker) != 'undefined') {
myWorker.postMessage({cmd : 'start', msg : 'hello'});
} else {
console.log('[Main]', 'Worker is undefined.');
}
}
function stopWorker1() {
if(typeof(myWorker) != 'undefined') {
myWorker.terminate();
myWorker = undefined;
console.log('[Main]', 'Worker terminated.');
} else {
console.log('[Main]', 'Worker is undefined.');
}
}
function stopWorker2() {
if(typeof(myWorker) != 'undefined') {
myWorker.postMessage({cmd : 'stop', msg : 'bye'});
} else {
console.log('[Main]', 'Worker is undefined.');
}
}