回答編集履歴

1

内容修正とサンプル追記

2017/09/06 06:20

投稿

aro10
aro10

スコア4106

test CHANGED
@@ -1,3 +1,97 @@
1
- 一例としてsochk.jsworkerしてインスタンス化されいるので
1
+ index.htmlからspchk.jsをワーカーとして呼び出し、さらにspchk.jsからworker2.jsをワーカーで呼び出している状態で、worker2.jsからspchk.jsへデーを受け渡し、spchk.jsからindex.htmlへデータを受け渡す。サプルプログラムを以下に作成しみたので参考にしてください。
2
2
 
3
+
4
+
5
+ 参考
6
+
7
+ [Web Worker を使用する](https://developer.mozilla.org/ja/docs/Web/API/Web_Workers_API/Using_web_workers)
8
+
3
- websocket.onmessageの中で、worker.xxxx(result)と値を設定するメソッドを呼び出せば値を受け渡せるかと思います。値を設定用のメソッドをworker(sochk.js)に作成してください。
9
+ [ワーカーについて(Web Workers)](http://hakuhin.jp/js/web_worker.html)
10
+
11
+
12
+
13
+ Workerで値を受け渡す方法
14
+
15
+ index.html
16
+
17
+ ```
18
+
19
+ <!doctype html>
20
+
21
+ <html lang="en">
22
+
23
+ <head>
24
+
25
+ <meta charset="UTF-8">
26
+
27
+ <meta name="viewport"
28
+
29
+ content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
30
+
31
+ <meta http-equiv="X-UA-Compatible" content="ie=edge">
32
+
33
+ <title>Document</title>
34
+
35
+ </head>
36
+
37
+ <body>
38
+
39
+ <p>test</p>
40
+
41
+ <script>
42
+
43
+ const worker = new Worker('spchk.js');
44
+
45
+ worker.addEventListener("message" , function (e){
46
+
47
+ console.log("spchk.jsより",e.data);
48
+
49
+ });
50
+
51
+ </script>
52
+
53
+ </body>
54
+
55
+ </html>
56
+
57
+ ```
58
+
59
+ spchk.js
60
+
61
+ ```
62
+
63
+ //受取用データ
64
+
65
+ var result = "";
66
+
67
+
68
+
69
+ this.self.addEventListener("message" , function (e){
70
+
71
+ result = e.data
72
+
73
+ this.self.postMessage(result);
74
+
75
+ });
76
+
77
+ self.importScripts('worker2.js');
78
+
79
+ ```
80
+
81
+
82
+
83
+ worker2.js
84
+
85
+ ```
86
+
87
+ //なんらかのイベント発生
88
+
89
+ setTimeout(function(){
90
+
91
+ this.self.postMessage({"test":"test data"});
92
+
93
+ },1000);
94
+
95
+ ```
96
+
97
+