Web_Workerとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > Web_Workerの意味・解説 

Web Worker

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/09/23 06:09 UTC 版)

Web Worker(ウェブ・ワーカー)は、HTMLページから実行され、同じHTMLページから実行される可能性があるスクリプトからは独立にバックグラウンドで動作する[1]JavaScriptスクリプトである。World Wide Web Consortium(W3C)とWeb Hypertext Application Technology Working Group(WHATWG)で仕様が定義されている。web workerはマルチコアCPUをより効率よく利用できることが多い[2]

Web Workerは、全てのタスクがシングルスレッドで処理されるJavaScriptの持つ問題を解消するための仕様である。JavaScriptで長時間かかる処理を実行すると、入力や画面の描画処理がブロックされて、アプリケーションが操作不能となってしまうため、処理を分割して何度もsetTimeout等で呼び出すなどの工夫が必要であった。しかし、workerを使用することによって、一部の操作について並行処理(バックグラウンド処理)が可能となる[3]

W3CとWHATWGは、Web Workerをクリックやユーザー操作などに応答するスクリプトによって中断されない長時間実行するスクリプトとして想定している。workerがユーザーアクティビティで中断されないようにすることで、バックグラウンドで長いタスクを実行すると同時に、Webページの応答性を確保できるようになる。

Web Workerの仕様はHTML Living Standardの一部である[4]

特徴

ワーカー内ではDOM操作などUI操作はできないが、タイマーや非同期通信等の機能は使用できる。また、この機能の仕様は、HTMLの中に含まれている。

workerの最も簡単な使用法は、ユーザーインターフェイスを中断せずに計算コストの高いタスクを実行することである。

この例では、メインのドキュメントが素数を計算するweb workerを生成し、直近に発見された素数が徐々に表示される。

メインページは次のようになる;。

<!DOCTYPE html>
<html>
 <head>
  <title>Worker の例: 1コアの計算</title>
 </head>
 <body>
  <p>これまでに見つかった最も大きな素数: <output id="result"></output></p>
  <script>
   var worker = new Worker('worker.js');
   worker.onmessage = function (event) {
     document.getElementById('result').textContent = event.data;
   };
  </script>
 </body>
</html>

Worker()コンストラクタの呼び出しがweb worker を生成し、web workerを表すworkerオブジェクトを返し、このオブジェクトを使用してweb workerと通信する。オブジェクトのonmessageイベントハンドラーはコードがweb workerからメッセージを受信できるようにする。 Web Worker本体は次のようになる。

var n = 1;
var end_value = 10**7;
search: while (n <= end_value) {
  n++;
  for (var i = 2; i <= Math.sqrt(n); i++)
    if (n % i == 0)
      continue search;
  // 素数を発見した!
  postMessage(n);
}

素数が見つかったときには、postMessage()メソッドを利用してメッセージがページに送り返される[5]

出典

  1. ^ Web Workers, WHATWG, http://www.whatwg.org/specs/web-workers/current-work/ 2010年6月3日閲覧。 
  2. ^ HTML Living Standard”. Html.spec.whatwg.org (2017年1月30日). 2017年1月31日閲覧。
  3. ^ Flanagan D. JavaScript 6th edition pp.747 - 754, 2012、古籏一浩 JavaScriptポケットリファレンス 5版 pp.390 - 396, 2011、JSさぽーたーず JavaScriptバイブル pp.366 - 368, 2012
  4. ^ Web Workers, WHATWG, http://www.whatwg.org/specs/web-workers/current-work/ 2010年6月3日閲覧。 
  5. ^ Web Workers, WHATWG, http://www.whatwg.org/specs/web-workers/current-work/ 2010年6月3日閲覧。 

外部リンク


「Web Worker」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Web_Worker」の関連用語

Web_Workerのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Web_Workerのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのWeb Worker (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS