Čo sú to weboví pracovníci?
Tento článok pojednáva o využití webových pracovníkov a ich dôležitosti v skriptovacom stroji HTML5.Java, ktorý je zostavený s jedným vláknom a za nimi nie je žiadny súbežný proces (Žiadny iný proces sa nevykonáva, kým sa neskončí prvý proces). Ako javascript beží v popredí a spôsobuje, že webová stránka je časovo náročná. Preto, aby sa zabránilo tomuto statnému problému, HTML5 prišla s novou technológiou s názvom Web pracovníci. Je to malý skript na pozadí, ktorý vykonáva výpočty pri nákladných úlohách bez zasahovania do používateľského rozhrania alebo výkonu webovej stránky. Toto izolované vlákno je relatívne ľahké a je podporované vo všetkých webových prehľadávačoch. Vďaka tomu bude HTML spúšťať ďalšie vlákna.
Typy webových pracovníkov v jazyku HTML5
Weboví pracovníci sa tiež nazývajú „špecializovaní pracovníci“. Dostali samostatný model zdieľanej pamäte. Inými slovami, môžeme povedať, že celý javascriptový rozsah sa náhodou spustil na jednom vlákne. Pri práci vo webovom prehľadávači sme narazili na nejakú správu dialógového okna dráhy kvôli ťažkému spracovaniu stránky. Na zabezpečenie dobrého riešenia prišlo HTML API vo webovom prehliadači súčasne k rôznym výpočtom.
Nižšie sú uvedené tri dôležité typy pracovníkov webu:
1. Zdieľaný webový pracovník
Tento typ využíva API a každá jednotka pracovníka má viac spojení pri odosielaní správy (viac skriptov) za predpokladu, že každý kontext je z rovnakého pôvodu. Podpora prehliadača pre tohto pracovníka je obmedzená. Nazývajú sa pomocou konštruktora zdieľaných pracovníkov ().
2. Vyhradený webový pracovník
Vytvorenie súboru je veľmi jednoduché len zavolaním Constructora s jeho zdrojovou cestou. Počas prenosu správ využívajú metódu komunikácie s odkazom nazývanú metóda post message (). Dokonca aj obsluhy udalostí sa používajú, keď sa koná nejaký poslucháč. Handler onmessage () sa používa na prijatie správy.
3. Servisný pracovník
Tento pracovník priamo neinteraguje s webovou stránkou a beží na pozadí. Môžu sa obnoviť kedykoľvek je to potrebné a fungujú ako proxy, ku ktorým má prístup viacero vlákien.
Ako vytvoriť súbor webových pracovníkov?
Nemajú podporu pre niektoré funkcie, ako napríklad objekt okna, DOM, nadradený objekt. Všetky funkcie sa vykonávajú odovzdaním ich repliky.
Krok 1: Vytvorenie importu súboru Konštruktor Worker () Súbor sa vytvorí pomocou nového objektu a skript vyzerá.
var worker = new Worker(sample.js);
Krok 2: Vytvorenie poštovej správy (). Vytvorené súbory pracovníkov automaticky vyvolajú metódu post message (). Metódy post message () smerujú správu prechádzajúcu do hlavného vlákna. Podobne môžeme poslať správu z hlavného vlákna do pracovného vlákna. Odtiaľto pracovník začína.
worker. postMessage();
Krok 3: Ďalej vyhodiť obsluhy udalostí a povoliť správu od webového pracovníka.
worker. onmessage = function(event)
Odteraz sme videli, ako odosielať a prijímať správy. Teraz sa pozrime, ako ukončiť pracovníka uprostred procesu.
Krok 4: Zastavenie procesu.
worker.terminate()
Krok 5: Implementácia scenára spracovania chýb, ktorý pracovník používa.
Worker.onerror();
Top 9 funkcií webových pracovníkov HTML5
- Weboví pracovníci sú asynchrónnym protokolom, preto sa najlepšie hodia na vykonávanie výpočtových úloh a považujú sa za profesionálne funkcie jazyka Javascript.
- Weboví pracovníci platia prísnu platformu vykonávania pre okná mobilných a stolných počítačov, umožňujúc tak spustenie webovej stránky bez zmrazenia webovej stránky v prehľadávačoch.
- Hlavnou výhodou je, že dokážeme spustiť drahé procesy v rámci jedného jednotlivého vlákna, ktoré neprerušuje bežiaci hlavný vlákno.
- Weboví pracovníci sú malé vlákna s nízkou váhou, ktoré sa živo prekladajú do užívateľského rozhrania.
- Weboví pracovníci, ktorých vlákna sú orientované na jadro, pomáhajú oslovovať vysoký výkon stránky prehliadačov.
- Weboví pracovníci pomáhajú pri vytváraní paralelného programovania a vykonávajú akcie s viacerými vláknami.
- Weboví pracovníci zvyšujú rýchlosť pre aplikáciu Java JScript.
- Webový pracovník sa považuje za skript na strane klienta a používa sa v aplikáciách hier vyššie.
- Vlákna webového pracovníka navzájom komunikujú pomocou metódy spätného volania po správe ().
Príklady webových pracovníkov HTML5
Weboví pracovníci majú prístup k navigátoru, požiadavke XMLHTTP, Navigátoru kvôli ich činnostiam súvisiacim s viacerými procesmi. Nasledujúci príklad sa zameriava na demonštrované typy pracovníkov.
Príklad č. 1
Zobrazí súbor vzorky pracovníka, ktorý demonštruje fungovanie prehliadača.
kód:
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ýkon:
Príklad č. 2
Nasledujúci príklad ukazuje, ako sa pracovné úlohy spúšťajú za úlohou pomocou triedy a počet sa vykonáva pre pracovné úlohy. Pracovné úlohy automaticky aktualizujú webovú stránku v každej slučke, kým slučka neskončí. Na ukončenie vykonávania pracovníkov sa tu používa terminate ().
Úloha, ktorú za webovým pracovníkom vykonáva:
kód:
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ýkon:
záver
Nakoniec sme videli, ako weboví pracovníci pracujú nezávisle od hlavného vlákna, ktoré pomáha webovým organizáciám pri zostavovaní náročných aplikácií. Dôrazne sa odporúča používať webových pracovníkov v javascripte na vykonávanie úloh s vysokou hmotnosťou. Navrhuje sa, že keď sa webový prehľadávač už nepoužíva, malo by sa zatvoriť kvôli spotrebúvaniu systémových prostriedkov.
Odporúčaný článok
Toto je príručka pre pracovníkov webu HTML5. Tu diskutujeme o deviatich hlavných funkciách webových pracovníkov HTML5 a ich príklady s implementáciou kódu. Viac informácií nájdete aj v našich navrhovaných článkoch -
- Html5 nové prvky Najlepších 10
- Rámčeky HTML so syntaxou
- Úvod do výhod HTML
- 10 najčastejších otázok a odpovedí na otázky týkajúce sa rozhovoru HTML5