Anfasi HTML Web Workers

Web worker shine JavaScript da ke a fada, ba zai iya haifar da abin kimiyyar tarayya.

Kuma Web Worker ne?

Kai a ke gudanarwa script a cikin rarraba HTML, rarraba na zai iya samun kai wucin gadi har sai a kammala script.

Web worker shine JavaScript da ke a fada, ba zai iya haifar da abin kimiyyar tarayya. Za a iya samun kai wajibai kai kai wucin gadi: nufin, kura kai saukar da kai saukar kai saukar, kuma a yau web worker yana a fada.

Suya kai browser

Dabbobi a cikin tafiyar na tabbin sunan shawara kai browser na yana soya Web Worker

API
Web Worker 4.0 10.0 3.5 4.0 11.5

Anfasi HTML Web Workers

Dabbobi kafin yin fiil Web Worker da yana yin adadi a fada:

Adadi:

Kaiwa kananin

Dakin kara ka soya Web Worker

Kafin ta ayya Web Worker, ba ci kara domin shawara kai browser na yana soya ya:

if (typeof(Worker) !== "undefined") {
    // Yaa! Babban Web Worker na yankeci!
    // Dabbobi dake.....
}
    // Kau! Babban Web Worker ba yankeci!
}

Anfasi Web Worker Fiil

Anan, ka kafa Web Worker na nasa a fayil na JavaScript na baya.]}

A cikin hakan, ake kafa aikace-aikace na adadi. Aikace-aikace na yana a cikin fayil "demo_workers.js":

var i = 0;
function timedCount() {
    i = i + 1;
    postMessage(i);
    setTimeout("timedCount()",500);
}
timedCount();

Wannan koda na muhimmanci ita ce hukunci postMessage() - ita ce ke amfani dashi don tsara ra'ayoyin a cikin rarraba HTML:

Kashishin: Web Worker yana iya amfani dashi a kodayewa na daidai, kuma ana amfani dashi a kodayewa na iya amfani dashi jama'ar CPU:

Kafa Web Worker

Anan ake samar da fayil Web Worker, ba a amfani dashi a kodayewa na aikace-aikace na daidai, kuma ana amfani dashi a kodayewa na iya amfani dashi jama'ar CPU:

Koda ake kiyar da aikace-aikace na cewa ba a cikin aikata ba, - ya kafa wani kuma Web Worker na farko, kuma ya bace koda "demo_workers.js":

if (typeof(w) == "undefined") {
    w = new Worker("demo_workers.js");
}

Kai tsaye ake iya samar da ra'ayoyin da kuma karfafa daga Web worker.

Ka kira wani "onmessage" aikace-aikace nufin Web worker:

w.onmessage = function(event){
    document.getElementById("result").innerHTML = event.data;
};

Yadda Web Worker ya samar da ra'ayoyin, yana iya gudanar da koda a cikin kalmomin nufin aikace-aikace. Data daga Web Worker zai yi aiki a cikin event.data.

Tsama Web Worker

Yadda ake tsara Web Worker, yana iya yin karfafa da ra'ayoyin ayyukan, kuma yana iya gudanar da aikace-aikace kafin a yake cikin aikata, har zuwa yake cikin aikata:

Don tsama Web Worker, da kuma kaiyewa jama'ar browsers / komputa, ka amfani dashi hukunci terminate():

w.terminate();

Amfani dashi Web Worker

Idan ka raba muhawara na worker zuwa undefined, a cewa a yake cikin aikata, za a iya amfani dashi koda a ya yi nasarar da kammala:

w = undefined;

Koda kammal na Web Worker

Akanan kiyar da kodayewa cewa a.cikin fayil .js na Worker. A shekarin nan na kodayewa na html na rarraba:

Mukamai

<!DOCTYPE html>
<html>
<body>
<p>Sauwarin daidai: <output id="result"></output></p>
<button onclick="startWorker()">Start Worker</button> 
<button onclick="stopWorker()">Stop Worker</button>
<br><br>
<script>
var w;
function startWorker() {
    if(typeof(Worker) !== "undefined") {
        if(typeof(w) == "undefined") {
            w = new Worker("demo_workers.js");
        }
        w.onmessage = function(event) {
            document.getElementById("result").innerHTML = event.data;
        };
    }
        document.getElementById("result").innerHTML = "Sorry! No Web Worker support.";
    }
}
function stopWorker() { 
    w.terminate();
    w = undefined;
}
</script>
</body>
</html>

Kaiwa kananin

Web Worker da DOM

Koyarwa web worker na kananin fiyanin fiyanin, su kaiwa aiki kananin JavaScript obiya:

  • window obiya
  • document obiya
  • parent obiya