2017-11-22 27 views
0

ウェブワーカーと機能を実行するための巧妙なハックがあるかどうかは分かりませんでした。多分このように:代わりにこのウェブワーカーを介して機能を実行する

let worker = new Worker("file.js");

+0

あなたは[ブロブAPI](https://developer.mozilla.org/en-US/docs/Web/API/Blob)と[ 'URL.createObjectURLが必要'](https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL)を参照してください。 – Xufox

答えて

0

let cpuIntensiveTask =()=>{ //function body } runWithWorker(cpuIntensiveTask);

あなたは別のファイルを使用せずに、BLOBなどのWebワーカーをインライン化することができます

<script id="worker1" type="javascript/worker"> 
    // This script won't be parsed by JS engines because its type is javascript/worker. 
    self.onmessage = function(e){ 
    self.postMessage('msg from worker'); 
    }; 
    // Rest of your worker code goes here. 
</script> 
<script> 
    var blob = new Blob([ document.querySelector('#worker1').textContent ], { type: "text/javascript" }); 
    var worker = new Worker(window.URL.createObjectURL(blob)); 
    worker.onmessage = function(e) { 
    console.log("Received: " + e.data); 
    } 
    worker.postMessage("hello"); 
    // Start the worker 
</script> 

は、そのブラウザに注意してください。サポートはこの方法では堅牢ではないかもしれません。

は、詳細についてはこちらをご覧ください:https://stackoverflow.com/a/6454685/5535081

関連する問題