HTML 5 API---Web Workerの高度な使い方
[本文はオリジナルです.転載があれば、出典を明記してください.http://blog.csdn.net/yl02520/article/]
Web WorkerはHTML 5に導入された重要なAPIであり、批判されてきた単一スレッドで実行されるJavaScriptにマルチスレッドの能力を持たせ、Web Workerがあれば、開発者はいくつかの重量級の時間のかかる計算タスクを別のスレッドに単独で実行することができ、これにより複数のスレッドを同時に実行させ、CPUマルチコアの機能を最大限に発揮することができる.
Web Workerの基本的な使い方は次のとおりです.
var worker = new Worker(“background.js”); //background.jsファイルは事前に用意されており、中のJavaScriptファイルはバックグラウンドで実行され、一般的に重量級や時間のかかる演算です.では、開発者が一連のJavaScriptプログラムを動的に実行する必要があるとしたらどうすればいいのでしょうか.
Web Workerの高度な使い方を紹介します.JSファイルを事前に作成しないで、動的にJavaScriptプログラムを指定してWorkerで実行するにはどうすればいいですか?
Blobオブジェクトを作成し、JavaScriptテキストをBlobオブジェクトに割り当て、window.URL.creatObjectURLメソッドでURLを生成し、最後にそのURLに基づいてWorkerオブジェクトを作成すると、先ほどのJavaScriptテキストはWorkerスレッドで実行されます.これにより、JavaScriptファイルを事前に作成することなく、ワークスレッドにタスクを動的に割り当てることができます.
インスタンスコードは次のとおりです.
Web WorkerはHTML 5に導入された重要なAPIであり、批判されてきた単一スレッドで実行されるJavaScriptにマルチスレッドの能力を持たせ、Web Workerがあれば、開発者はいくつかの重量級の時間のかかる計算タスクを別のスレッドに単独で実行することができ、これにより複数のスレッドを同時に実行させ、CPUマルチコアの機能を最大限に発揮することができる.
Web Workerの基本的な使い方は次のとおりです.
var worker = new Worker(“background.js”); //background.jsファイルは事前に用意されており、中のJavaScriptファイルはバックグラウンドで実行され、一般的に重量級や時間のかかる演算です.では、開発者が一連のJavaScriptプログラムを動的に実行する必要があるとしたらどうすればいいのでしょうか.
Web Workerの高度な使い方を紹介します.JSファイルを事前に作成しないで、動的にJavaScriptプログラムを指定してWorkerで実行するにはどうすればいいですか?
Blobオブジェクトを作成し、JavaScriptテキストをBlobオブジェクトに割り当て、window.URL.creatObjectURLメソッドでURLを生成し、最後にそのURLに基づいてWorkerオブジェクトを作成すると、先ほどのJavaScriptテキストはWorkerスレッドで実行されます.これにより、JavaScriptファイルを事前に作成することなく、ワークスレッドにタスクを動的に割り当てることができます.
インスタンスコードは次のとおりです.
<html>
<body>
<script id="worker" type="javascript/worker">
self.postMessage("Message from Web Worker.");
</script>
<script>
var worker_blob = new Blob([document.getElementById("worker").textContent]);
var worker = new Worker(window.URL.createObjectURL(worker_blob));
worker.onmessage = function(event) {
console.log("Received event: " + event.data);
};
</script>
</body>
</html>