6 N3 h. J& h9 x& w8 B port.onmessage = function(e) { 3 u5 g2 `' X! K& R8 _ var message = e.data; , N. J) G$ c" m: o* m4 a/ g // 在这里处理接收到的消息5 c' x( k# M# C" |& X
};; A4 X6 F6 S$ _2 @9 E) i
. P/ _! y9 t1 y port.start(); & T2 e$ J0 r; s2 s0 t};& W' y$ j0 @) O9 @# [
b8 n {7 \, q5 J
在多个窗口中分别创建SharedWorker的端口,并发送消息。 6 |$ {8 a# u: n// window1.js ( \, p# a* K# b2 q5 @var worker = new SharedWorker('shared-worker.js');6 K9 I% X, h9 h# X% r# |2 V
var port = worker.port;; b1 w w5 g' J
/ j' ^ d/ d1 D; Y7 J
port.onmessage = function(e) { 2 W# g$ O A2 N. F2 ?8 O6 O/ E- @5 } var message = e.data; ! _2 f" o: D k, l) s# { // 在这里处理接收到的消息* k( A Q O6 z6 f! B' |" g, p9 d
};- m8 C% Z; h7 H5 r) b
) q, |0 A3 b3 J! @+ bport.postMessage('Hello from window1!'); # R) V4 V$ @7 l$ \% o; J7 q1 s" s! g& `) z
// window2.js, ` a. O) I/ z, o- q, A1 S
var worker = new SharedWorker('shared-worker.js'); ' q0 i, `* ]) l- ovar port = worker.port;& p# h7 {) w, b K, S# g
) [% Z: `' t8 qport.onmessage = function(e) { / S& t% } X" \6 i9 M5 { var message = e.data; 6 P& `+ V( _: i8 d' d) y B // 在这里处理接收到的消息 / D9 c& z/ B: g* S. [4 l v# `( L}; & v+ D d) C$ ? # D) p0 h- W& V; a. S3 q# Jport.postMessage('Hello from window2!');2 z8 U. ^: E: L) z! y5 V9 @
$ g) u8 M) Z: g8 r/ f- B在SharedWorker中处理接收到的消息,并向所有连接的窗口发送消息。 - R2 ?$ K+ H, w9 ?6 {// shared-worker.js4 X1 x) z/ @- J! A
onconnect = function(e) {0 D/ A% i+ b4 ?6 o1 B
var port = e.ports[0]; # v! w8 t& v/ E0 [ 8 S9 s* m: c5 \ port.onmessage = function(e) {8 r) a3 e" g0 ~* C
var message = e.data; . k! o% ]1 S3 _6 K& J; y5 e // 在这里处理接收到的消息 $ m9 U: [& x1 ^0 y % V' Z0 _( e- B8 d& @& n // 向所有连接的窗口发送消息 q. o! ^. V- Z+ E
e.source.postMessage('Hello from SharedWorker!');' @0 O- I/ L& _8 Z5 X6 g
}; n; t( a$ s8 H, v" x" |' y x+ X( F, _5 X
port.start(); ; D* a6 _* {) h) V" [};: [5 T2 r+ u. O7 x' ~1 ]
, }9 n- z; U5 o4 _