Czy możliwe jest napisanie prostego dedykowanego pracownika WWW, aby przetwarzał coś w sposób ciągły i wysyłał swój stan tylko wtedy, gdy klient go prosi.Javascript dedykowany pracownik WWW do wysyłania wiadomości na żądanie
co robiłem do tej pory, plik klient:
<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>
Plik pracownik:
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);
}
Jak widać pracownika wysłać ciągły liczby pierwsze to zakłada. Chciałbym móc uruchomić obliczenia bazowe i poprosić pracownika, aby wysłał najnowszą liczbę podstawową, jaką znajdzie, gdy kliknę przycisk na kliencie, na przykład. To byłoby coś takiego (wiem, że to nie może pracować jako ale dać ogólne pojęcie o tym, co chcę):
plik Pracownik: file
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;
}
Klient:
<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>
Masz rację, próbowałem rozwiązać to do góry nogami!Pokazałeś mi właściwą drogę, dziękuję! –