module
タイプは、type="module"
attribute does for a script tagとほぼ同じ目的を果たします。これはブラウザに、読み込まれているワーカースクリプトがES6モジュール(解析および実行方法を知るために必要なメタデータ、as this article goes into a bit)であることを伝えます。
ワーカーモジュールがES6モジュール(おそらくimport
ステートメント)の場合に使用します。 CORSが有効になっていれば、別の起源のワーカーをロードすることができるという特典もあります(古典的なワーカーはできません)。import
ステートメントを使用していなくても魅力的な機能です。 HTML Living Standard - Using a JavaScript module as a workerから
:
私たちの例のすべての古典的なスクリプトを実行し、これまでのショーの労働者。代わりに、作業者はモジュールスクリプトを使用してインスタンス化することができます。これには通常の利点があります.JavaScriptインポートステートメントを使用して他のモジュールをインポートする機能。 strictモード。作業者のグローバルスコープを汚染しない最上位レベルの宣言が含まれます。
このようなモジュールベースのワーカーは、古典的なワーカーと比較して、クロスオリジンのコンテンツに関するさまざまな制限に従います。従来のワーカーとは異なり、モジュール・ワーカーは、CORSプロトコルを使用してスクリプトが公開されている限り、クロス・オリジン・スクリプトを使用してインスタンス化できます。さらに、importScripts()メソッドはモジュールワーカー内部で自動的に失敗します。 JavaScriptのimportステートメントが一般に良い選択肢です。
今日の時点では、ES6モジュールのブラウザサポートはそれほど大きくないので、実際には本番では使用しないでしょう。