Multithreading JavaScript come?
-
23-09-2019 - |
Domanda
C'è qualche idea (libreria o metodologia) per creare applicazioni multithreading in JavaScript?
Nessuna soluzione corretta
Altri suggerimenti
Il più vicino che otterrai è Web Workers (solo in FF 3.5 / HTML5). Controlla - http://www.whatwg.org/specs/web-workers/current-work/
JavaScript non ha le funzionalità multi-threading e non c'è niente di un programmatore JavaScript può fare per cambiare questa situazione.
Tuttavia, ciò che possiamo fare è simulare il multi-threading.Si prega di passare attraverso questo articolo anche.
E c'è un link PDF sul JavaScript Multithread Quadro per l'Elaborazione Asincrona tesi di laurea
Un'altra simulazione di thread che ho trovato abbastanza stabile è usare un'immagine. Che sembra essere caricato in un altro thread nel browser (?). Tuttavia, il tuo callback JavaScript verrà eseguito sempre in sequenza.
Qui sotto di esso ne carica 500.
<html>
<head>
<title>so</title>
<style></style>
</head>
<script>
function callBack(img){
var i = 0, img, res = document.getElementById('res'),
fn = function(cnt){
var img = document.createElement('img');
img.onerror = function(ev){
res.innerHTML += cnt + ', ';
document.body.removeChild(img);
};
img.src = 'javascript:void(0)';
document.body.appendChild(img);
};
do{
fn(i++);
}while(i<500);
}
</script>
<body onload="callBack()">
<div id="res"></div>
</body>
</html>
JavaScript è un linguaggio di programmazione dinamico e può essere usato per molte cose diverse. Se non viene utilizzato dall'interno del browser, puoi fare affidamento completamente su cose come più thread, eventi ecc. Dovresti controllare node.js.
Il browser purtroppo ti offre solo una set rigorosa di funzionalità della lingua.
Lavoratori web
Puoi usare Lavoratori web Per creare thread di sfondo
I lavoratori Web forniscono un mezzo semplice per i contenuti Web per eseguire script nei thread di fondo. Il thread del lavoratore può eseguire attività senza interferire con l'interfaccia utente. Inoltre, possono eseguire I/O utilizzando XMLHTTPREQUEST (sebbene gli attributi di Responsexml e canale siano sempre nulli). Una volta creato, un lavoratore può inviare messaggi al codice JavaScript che lo ha creato pubblicando messaggi su un gestore di eventi specificato da quel codice (e viceversa.) Questo articolo fornisce un'introduzione dettagliata all'utilizzo dei lavoratori Web.
Compatibilità del browser
Chrome: 4
Firefox (Gecko): 3.5
Internet Explorer: 10.0
Opera: 10.6
Safari (webkit): 4