diff --git a/js/main.js b/js/main.js index d71f8169866f6033265d707445a0b35378d938a8..60bbb01955bda8a64313ff6b3c6205b1916cad95 100644 --- a/js/main.js +++ b/js/main.js @@ -7,6 +7,6 @@ $(function(){ three = Three(); setupNavBar(); - workers = makeWorkers(); + makeWorkers(4); }); diff --git a/js/persistantWorkers.js b/js/persistantWorkers.js deleted file mode 100644 index 046acac5b4b41ce69f0686dd8b0910a80495d008..0000000000000000000000000000000000000000 --- a/js/persistantWorkers.js +++ /dev/null @@ -1,32 +0,0 @@ -//global workers so they do not have to be reinstantiated - - -function browserSupportsWebWorkers() { - return typeof window.Worker === "function"; -} - -function makeWorkers(){ - - function makeBlobURL(myWorkerFunction) { - var URL = window.URL || window.webkitURL; - var blob = new Blob([myWorkerFunction.toString()], { type: "text/javascript" }); - return URL.createObjectURL(blob); - } - - function workerFunction(){ -// var isNode = typeof module !== 'undefined' && module.exports; -// -// if (isNode) { -// process.once('message', function (code) { -// eval(JSON.parse(code).data); -// }); -// } else { - console.log("eval"); - self.onmessage = function (code) { - console.log(code); - eval(code.data); - }; -// } - } -// return new Parallel(null, {env:null, evalPath: "dependencies/eval.js"}).require('three.js'); -} \ No newline at end of file diff --git a/js/persistentWorkers.js b/js/persistentWorkers.js new file mode 100644 index 0000000000000000000000000000000000000000..343b8d6087ac7fae66e20604c8d4f5c871b2e2bf --- /dev/null +++ b/js/persistentWorkers.js @@ -0,0 +1,30 @@ +//global workers so they do not have to be reinstantiated + + +function browserSupportsWebWorkers() { + return typeof window.Worker === "function"; +} + +function makeWorkers(numWorkers){ + + var allWorkers = []; + var URL = window.URL || window.webkitURL; + var workerURL = makeBlobURL(URL, myWorker); + for (var i=0;i<numWorkers;i++){ + var worker = new Worker(workerURL); + worker.postMessage([i,4]); + + worker.onmessage = function(e) { + console.log(e.data); + }; + allWorkers.push(worker); + } + URL.revokeObjectURL(workerURL); + + + function makeBlobURL(URL, someFunction) { + var blob = new Blob(["(" + someFunction.toString() + ")()"], { type: "text/javascript" }); + return URL.createObjectURL(blob); + } + +} \ No newline at end of file diff --git a/js/worker.js b/js/worker.js index 211e20ce47c887d9cff829fbfcf6d1360167f367..fb1d55998c49e0169ec5ee1953bf39747094b429 100644 --- a/js/worker.js +++ b/js/worker.js @@ -2,20 +2,23 @@ * Created by aghassaei on 1/12/15. */ +function myWorker(){ + self.onmessage = function(e) { + var data = e.data; -self.onmessage = function(e) { - var data = e.data; + if (data.url) { + var url = data.url.href; + var index = url.indexOf('main.html');//url of landing page + if (index != -1) { + url = url.substring(0, index); + } + //load all scripts + // importScripts(url + 'dependencies/three.js'); + // importScripts(url + 'js/element.js'); + } - if (data.url) { - var url = data.url.href; - var index = url.indexOf('main.html');//url of landing page - if (index != -1) { - url = url.substring(0, index); - } - //load all scripts - importScripts(url + 'dependencies/three.js'); -// importScripts(url + 'js/element.js'); - } + var workerResult = 'Result: ' + (e.data[0] * e.data[1]); + postMessage(workerResult); - -}; \ No newline at end of file + }; +} diff --git a/main.html b/main.html index daf0a6ce2adde98aa65e1d78cb1c77626373c226..dbb6ef67f38de06ed1c07fec0ca83cb2ba918484 100644 --- a/main.html +++ b/main.html @@ -32,7 +32,8 @@ <!--multi-threading--> <script src="dependencies/parallel.js"></script> - <script src="js/persistantWorkers.js"></script><!--global workers--> + <script src="js/worker.js"></script> + <script src="js/persistentWorkers.js"></script><!--global workers--> <script src="js/main.js"></script> <script src="dependencies/loaders/STLLoader.js"></script>