È possibile scrivere un semplice web worker dedicato in modo che elabori qualcosa continuamente e invii il suo stato solo quando il cliente lo richiede.Javascript web worker dedicato per inviare messaggi a richiesta
Quello che ho fatto finora, il file del client:
<script>
// spawn a worker
var worker = new Worker('basic-worker.js');
// decide what to do when the worker sends us a message
worker.onmessage = function(e){
document.getElementById('result').textContent = e.data;
};
</script>
<html>
<head></head>
<body>
<p>The Highest prime number discovered so far : <outpout id="result"></output></p>
</body>
</html>
Il file operaio:
var n = 0;
search: while (true) {
n += 1;
for (var i = 2; i <= Math.sqrt(n); i += 1)
if (n % i == 0)
continue search;
// found a prime !
postMessage(n);
}
Come si può vedere il lavoratore inviare continuamente i numeri primi si fonda. Mi piacerebbe essere in grado di lanciare il primo calcolo e chiedere al lavoratore di inviare l'ultimo primo che ha trovato quando faccio clic su un pulsante sul client, ad esempio. Sarebbe qualcosa di simile (lo so che non può funzionare come ma per dare un'idea generale di ciò che voglio):
di file Worker: file di
var n = 0;
var lPrime = 0;
// post last prime number when receiving a message
onmessage = function(e) {
postMessage(lPrime);
}
// continously search for prime numbers
search: while (true) {
n += 1;
for (var i = 2; i <= Math.sqrt(n); i += 1)
if (n % i == 0)
continue search;
// found a prime !
//postMessage(n);
lPrime = n;
}
Cliente:
<script>
// spawn a worker
var worker = new Worker('basic-worker.js');
// what to do when the worker sends us a message
worker.onmessage = function(e){
document.getElementById('result').textContent = e.data;
};
// post to the worker so the worker sends us the latest prime found
function askPrime(){
worker.postMessage();
};
</script>
<html>
<head></head>
<body>
<p>The Highest prime number discovered so far : <outpout id="result"></output></p>
<input type="button" onclick="askPrime();">
</body>
</html>
Hai ragione, stavo cercando di risolvere questo sottosopra!Mi hai mostrato la strada giusta, grazie mille! –