WebWorkers」タグアーカイブ

WebWorkersを使う時Worker側のonmessageにvarを付けるとChromeで動かない

投稿日:

5歳になる長男が一人でお風呂に入れるようになりました。
チャレンジチャレンジと言いながら。
そうやって大人になっていくんだなぁと、秋の黄昏と共に切なくなった今日この頃です。

さて、今日はタイトルの通り
WebWorkersを使う時Worker側のonmessageにvarを付けるとChromeで動かない
という事象に出くわしたのでメモっときます。

いきさつ

前作ったbase64 encoderを久々に見てみたら、chromeで動かない。safariでは動く。IE10でも動く。
なんぞこれだったので、ちょっとソースを見直してみた。

2015-10-08 追記

確認した所、IE10、IE11も動きませんでした。。下記でChromeだけ動かないって書いている箇所は全てIE10、IE11も該当します。Chrome様ごめんちゃい。

動かなくなってた原因

原因はちょっと腑に落ちないんだけど、Web Workersを使う時worker側に書くonmessage関数をvarつきで宣言していたからっぽい。※タイトルの通りです。何度もすいません。

動かなかったworker

var onmessage = function(e) {
  // do something...
};

動いたworker

onmessage = function(e) {
  // do something...
};

前にweb workersを試した時、chrome ver.27 で確かに動いていたので、現在のver.45までの間に動かなくなった様ですネ。
※直したソースはこちら shimabox/base64Encoder

そもそもWeb Workersって何?

そもそもWeb Workersってなんなのって話ですが、https://developer.mozilla.org/ja/docs/Web/Guide/Performance/Using_web_workersから引用させて頂くと

続きを読んでみようかな…