Webeworker array test
HTML
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<script src="http://mattslocum.github.io/ng-webworker/bower_components/ng-webworker/src/ng-webworker.js"></script>
<input type="number" ng-model="num"/>
<button ng-click="ctrl.makePrimes(num)">Make Primes</button>
<button ng-click="ctrl.makePrimesWorker(num)">Make Primes with Worker</button>
<br/>
<p ng-show="ctrl.running">Webworker is running</p>
<div class="primes">
<span ng-repeat="prime in ctrl.primes">{{prime}}</span>
</div>
CSS
.primes {
word-break: break-word;
}
.primes span {
padding: 5px;
}
JavaScript
var app = angular.module('myApp', ['ngWebworker']);
app.controller('ctrl', function($scope, Webworker) {
function generatePrimes(amount) {
var primes = [2,3],
counter = 5,
isPrime = true;
for (;primes.length < amount; counter += 2) {
isPrime = primes.some(function(prime) {
return counter % prime == 0;
});
if (!isPrime) {
primes.push(counter);
}
}
primes.length = Math.max(0,amount);
return primes;
}
$scope.num = 5000;
this.makePrimes = function(num) {
this.primes = generatePrimes(num);
};
this.makePrimesWorker = function(num) {
var self = this;
this.running = true;
Webworker.create(generatePrimes).run(num).then(function(primes) {
self.primes = primes;
self.running = false;
});
};
});