Skip to content
Snippets Groups Projects
Commit 8c524468 authored by Amanda Ghassaei's avatar Amanda Ghassaei
Browse files

three js imported into web workers

parent 1e78bcb1
Branches
No related tags found
No related merge requests found
...@@ -7,6 +7,6 @@ $(function(){ ...@@ -7,6 +7,6 @@ $(function(){
three = Three(); three = Three();
setupNavBar(); setupNavBar();
makeWorkers(4); persistentWorkers(4);
}); });
//global workers so they do not have to be reinstantiated //global workers so they do not have to be reinstantiated
function persistentWorkers(numWorkers){
function browserSupportsWebWorkers() { //check compatibility
return typeof window.Worker === "function"; if (!(typeof window.Worker === "function")){
console.log("workers not supported");
return nil;
} }
function makeWorkers(numWorkers){ //create array of workers
var allWorkers = []; var allWorkers = [];
var URL = window.URL || window.webkitURL; var URL = window.URL || window.webkitURL;
var workerURL = makeBlobURL(URL, myWorker); var workerURL = makeBlobURL(URL, myWorker);
for (var i=0;i<numWorkers;i++){ for (var i=0;i<numWorkers;i++){
var worker = new Worker(workerURL); var worker = new Worker(workerURL);
var location = document.location;
worker.postMessage({url: location.toString()});
worker.postMessage([i,4]); worker.postMessage([i,4]);
worker.onmessage = workerCallback;
worker.onmessage = function(e) {
console.log(e.data);
};
allWorkers.push(worker); allWorkers.push(worker);
} }
URL.revokeObjectURL(workerURL); URL.revokeObjectURL(workerURL);
function workerCallback(e){
console.log(e.data);
}
function makeBlobURL(URL, someFunction) { function makeBlobURL(URL, someFunction) {
var blob = new Blob(["(" + someFunction.toString() + ")()"], { type: "text/javascript" }); var blob = new Blob(["(" + someFunction.toString() + ")()"], { type: "text/javascript" });
......
...@@ -7,16 +7,19 @@ function myWorker(){ ...@@ -7,16 +7,19 @@ function myWorker(){
var data = e.data; var data = e.data;
if (data.url) { if (data.url) {
var url = data.url.href; var url = data.url;
var index = url.indexOf('main.html');//url of landing page var index = url.indexOf('main.html');//url of landing page
if (index != -1) { if (index != -1) {
url = url.substring(0, index); url = url.substring(0, index);
} }
//load all scripts //load all scripts
// importScripts(url + 'dependencies/three.js'); importScripts(url + 'dependencies/three.js');
// importScripts(url + 'js/element.js'); // importScripts(url + 'js/element.js');
return;
} }
console.log(new THREE.Vector3(0,3,4));
var workerResult = 'Result: ' + (e.data[0] * e.data[1]); var workerResult = 'Result: ' + (e.data[0] * e.data[1]);
postMessage(workerResult); postMessage(workerResult);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment