Mis on veebitöötajad?
See artikkel on seotud veebitöötajate kasutamise ja nende olulisusega HTML5.Java skripti mootoris, mis on üles ehitatud ühe lõimega ja nende taga pole ühtegi samaaegset protsessi (ühtegi muud protsessi ei teostata enne, kui esimene protsess on lõpule jõudnud). Kuna javascript töötab esiplaanil ja muudab veebilehe aeganõudvaks. Seetõttu on HTML5 selle kopsaka probleemi vältimiseks välja pakkunud uue tehnoloogia, mille nimi on veebitöötajad. See on väike taustiskript, mis arvutab kalleid ülesandeid ilma kasutajaliidesesse või veebilehe jõudlusse sekkumata. See eraldatud niit on suhteliselt kerge ja seda toetatakse kõigis veebibrauserites. See muudab HTML-i täiendavate lõimede käivitamiseks.
Veebitöötajate tüübid HTML5-s
Veebitöötajaid nimetatakse ka „pühendunud töötajateks”. Nad said eraldi jagatud mälumudeli. Teisisõnu võib öelda, et kogu javascripti ulatus juhtus ühel lõimel. Veebibrauseris töötades oleme lehe raske töötlemise tõttu kohanud raja dialoogi. Hea lahenduse pakkumiseks on veebibrauseri HTML API-l tulnud lahendada erinevad arvutused korraga.
Allpool on toodud kolm olulist tüüpi veebitöötajaid:
1. Jagatud veebitöötaja
See tüüp kasutab API-sid ja igal töötaja ühikul on sõnumi (mitu skripti) saatmise ajal mitu ühendust, kui iga kontekst on pärit samast päritolust. Selle töötaja brauseri tugi on piiratud. Neid kutsutakse jagatud töötaja () abil.
2. Pühendunud veebitöötaja
Faili loomine on väga lihtne, lihtsalt helistades Constructorile lähteteega. Nad kasutavad sõnumi edastamisel sõnumsidet, mida nimetatakse post message () meetodiks. Isegi sündmuste käitlejaid kasutatakse juhul, kui mõni kuulaja toimub. Sõnumi saatjaks on käitleja onmessage ().
3. Teenindaja
See töötaja ei suhtle veebilehega otse ja töötab taustal. Nad saavad vajaduse korral taastada ja toimivad puhverserverina, neile pääseb juurde mitme keermega.
Kuidas luua veebitöötajate faili?
Nad ei toeta mõnda funktsiooni, näiteks aknaobjekti, DOM-i, vanemobjekti. Kõik funktsioonid täidetakse neist koopia edastamise teel.
1. samm: faili importimise loomiseks Worker () konstruktor Fail luuakse uue objekti abil ja skript näeb välja selline.
var worker = new Worker(sample.js);
2. samm: postisõnumi loomine (). Loodud töötaja failid kutsuvad automaatselt postiteate () meetodi esile. Postisõnumi () meetodid suunavad sõnumi põhiteemale. Ja samamoodi saame saata sõnumi töötaja põhilõngast. Siin alustab töötaja.
worker. postMessage();
3. samm: seejärel viska sündmuse käitleja, et lubada veebitöötajalt sõnumit.
worker. onmessage = function(event)
Nüüdsest oleme näinud, kuidas sõnumeid saata ja vastu võtta. Nüüd vaatame, kuidas töötaja keset protsessi lõpetada.
4. samm: protsessi peatamine.
worker.terminate()
5. samm: vigade käsitlemise stsenaariumi rakendamiseks kasutab töötaja.
Worker.onerror();
HTML5 veebitöötajate 9 parimat funktsiooni
- Veebitöötajad, kes olid asünkroonsed protokollid, sobisid neile kõige paremini arvutusülesandeid ja neid peeti Javascripti professionaalseteks omadusteks.
- Veebitöötajad maksavad mobiili- ja töölauaakende eest ranget täitmisplatvormi, lubades veebisaiti käitada ilma veebilehte brauserites külmutamata.
- Peamine eelis on see, et suudame kulutada kalleid protsesse ühe üksiku lõime sees, mis ei katkesta töötavat põhilõnga.
- Veebitöötajad on väikesed ja kerged niidid, mis liidestavad kasutajaliidese individuaalselt.
- Kerneli orienteeritud keermestatud veebitöötajad aitavad jõuda brauserite lehe suure jõudlusega.
- Veebitöötajad aitavad luua paralleelset programmeerimist ja teostavad mitmekordseid toiminguid.
- Veebitöötajad suurendavad Java Java rakenduse kiirust.
- Veebitöötajat peetakse kliendipoolseks skriptiks ja seda kasutatakse mängude rakenduses kõrgemalt.
- Veebitöötaja niidid suhtlevad omavahel postisõnumi () tagasihelistamismeetodi abil.
HTML5 veebitöötajate näited
Veebitöötajatel on tänu multi-töötlemistoimingutele juurdepääs navigaatorile, XMLHTTP päringule, Navigatorile. Allpool toodud näide keskendub demonstreerimiseks pühendunud töötajatüüpidele.
Näide nr 1
Näitab töötaja näidisfaili, mis demonstreerib brauseri toimimist.
Kood:
Web Worker Demo
Validating the browser compatibility of Web Browsers
Submit
function worker_demo()
(
if(typeof(Worker)!=="undefined")(
document.getElementById("yes").innerHTML=" Browser Supports";
)
else
(
document.getElementById("NO").innerHTML="Browser Not Supporting the workers";)
)
Web Worker Demo
Validating the browser compatibility of Web Browsers
Submit
function worker_demo()
(
if(typeof(Worker)!=="undefined")(
document.getElementById("yes").innerHTML=" Browser Supports";
)
else
(
document.getElementById("NO").innerHTML="Browser Not Supporting the workers";)
)
Web Worker Demo
Validating the browser compatibility of Web Browsers
Submit
function worker_demo()
(
if(typeof(Worker)!=="undefined")(
document.getElementById("yes").innerHTML=" Browser Supports";
)
else
(
document.getElementById("NO").innerHTML="Browser Not Supporting the workers";)
)
Web Worker Demo
Validating the browser compatibility of Web Browsers
Submit
function worker_demo()
(
if(typeof(Worker)!=="undefined")(
document.getElementById("yes").innerHTML=" Browser Supports";
)
else
(
document.getElementById("NO").innerHTML="Browser Not Supporting the workers";)
)
Väljund:
Näide 2
Järgmine näide näitab, kuidas töötaja ülesanded kulgevad klassi abil ülesande tagant ja töötajate tööülesannete arvestamine toimub. Töötaja ülesanded värskendavad veebilehte automaatselt igal silmusel, kuni silmus lõpeb. Töötaja hukkamise lõpetamiseks on siin kasutatud terminate ().
Veebitöötaja taustal tehtud töö:
Kood:
wrk.html
Web Workers Demo
body (padding-top:18px;)
.output-cont (margin-left:12%; margin-top:28px;)
.output-cont h2 (width:150px; height:95%;)
.output-cont button (padding:3px 7px; font-size:1.3rem; font-family:sans-serif; )
start worker terminate
start blocking thread
test responsiveness
var worker;
function testWork() (
if (typeof(Worker) !== "undefined") (
if (typeof(worker) == "undefined") (
worker = new Worker("demo.js");
)
worker.onmessage = function(event) (
document.getElementById("wOutput").innerHTML = event.data;
);
) else (
document.getElementById("wOutput").innerHTML = "Web Workers are unsupported";
)
)
function stopWorker() (
worker.terminate();
worker = undefined;
)
function test() (
for (var j = 0; j < 20000; j++) (
document.getElementById("mainThreadOutput").innerHTML = "Main Thread Counter: " + j;
)
)
Next creating an separate external javascript file demo.js and the code comes as shown.
demo.js
j = 0;
while (j < 200000)
( postMessage("Web Worker Counter: " + j);
j++;
)
Web Workers Demo
body (padding-top:18px;)
.output-cont (margin-left:12%; margin-top:28px;)
.output-cont h2 (width:150px; height:95%;)
.output-cont button (padding:3px 7px; font-size:1.3rem; font-family:sans-serif; )
start worker terminate
start blocking thread
test responsiveness
var worker;
function testWork() (
if (typeof(Worker) !== "undefined") (
if (typeof(worker) == "undefined") (
worker = new Worker("demo.js");
)
worker.onmessage = function(event) (
document.getElementById("wOutput").innerHTML = event.data;
);
) else (
document.getElementById("wOutput").innerHTML = "Web Workers are unsupported";
)
)
function stopWorker() (
worker.terminate();
worker = undefined;
)
function test() (
for (var j = 0; j < 20000; j++) (
document.getElementById("mainThreadOutput").innerHTML = "Main Thread Counter: " + j;
)
)
Next creating an separate external javascript file demo.js and the code comes as shown.
demo.js
j = 0;
while (j < 200000)
( postMessage("Web Worker Counter: " + j);
j++;
)
Web Workers Demo
body (padding-top:18px;)
.output-cont (margin-left:12%; margin-top:28px;)
.output-cont h2 (width:150px; height:95%;)
.output-cont button (padding:3px 7px; font-size:1.3rem; font-family:sans-serif; )
start worker terminate
start blocking thread
test responsiveness
var worker;
function testWork() (
if (typeof(Worker) !== "undefined") (
if (typeof(worker) == "undefined") (
worker = new Worker("demo.js");
)
worker.onmessage = function(event) (
document.getElementById("wOutput").innerHTML = event.data;
);
) else (
document.getElementById("wOutput").innerHTML = "Web Workers are unsupported";
)
)
function stopWorker() (
worker.terminate();
worker = undefined;
)
function test() (
for (var j = 0; j < 20000; j++) (
document.getElementById("mainThreadOutput").innerHTML = "Main Thread Counter: " + j;
)
)
Next creating an separate external javascript file demo.js and the code comes as shown.
demo.js
j = 0;
while (j < 200000)
( postMessage("Web Worker Counter: " + j);
j++;
)
Väljund:
Järeldus
Lõpuks oleme näinud, kuidas veebitöötajad töötavad sõltumatult peamisest lõimest, mis aitab veebiorganisatsioonidel nõudlike rakenduste loomisel. Ja raskete ülesannete jaoks on tungivalt soovitatav kasutada veebitöötajaid javascriptis. Kui veebibrauser pole enam kasutusel, soovitatakse süsteemi ressursside tarbimiseks sulgeda.
Soovitatav artikkel
See on HTML5 veebitöötajate juhend. Siin käsitleme HTML5 veebitöötajate 9 peamist funktsiooni ja selle näiteid koos koodi juurutamisega. Lisateavet leiate ka meie soovitatud artiklitest -
- Html5 uued elemendid | 10 parimat
- HTML-raamid koos süntaksiga
- Sissejuhatus HTML-i eelistesse
- 10 parimat HTML5 intervjuu küsimust ja vastust