Kā izmantot tīmekļa darbiniekus daudzpavedienu izveidei JavaScript?

Ka Izmantot Timekla Darbiniekus Daudzpavedienu Izveidei Javascript



Programmā JavaScript ir vairākas pieejas, lai uzlabotu vietnes kopējo lietotāja interfeisu. The 'Tīmekļa darbinieks' ir viena no šādām pieejām, kas ļauj galvenajam pavedienam turpināt izpildi bez bloķēšanas. Tas ietver atsevišķu JavaScript programmas gadījumu, un tāpēc tas nevar izsaukt galvenā pavediena funkcijas.

Šajā rakstā tiks apspriests, kā to izmantot 'Tīmekļa darbinieks' vairākpavedienu izveidei JavaScript.







Kas ir tīmekļa darbinieki?

'Tīmekļa darbinieki' atbilst pārlūkprogrammas API, kas ļauj JavaScript palaist uzdevumus paralēli/vienlaikus atsevišķā/speciālā pavedienā.



Kas ir nepieciešami tīmekļa darbiniekiem?

Tā kā JavaScript ir viens pavediens, sarežģītie JavaScript kodi bloķē lietotāja saskarnes pavedienu, t.i., aptur galveno logu, kurā tiek veikti visi atsvaidzināšanas, lietotāja ievades notikumu ieviešanas uzdevumi utt. Šādā gadījumā tiek ietekmēta lietotāja pieredze. . Lai tiktu galā ar šo problēmu, 'Tīmekļa darbinieks' stājas spēkā un atrisina lietotāja interfeisa pavediena bloķēšanu.



Kā izmantot tīmekļa darbiniekus daudzpavedienu veidošanai ar JavaScript?

Lai izveidotu a 'Tīmekļa darbinieks' , izmantojiet Worker konstruktoru. Tas ir tāds, ka tā arguments izmanto URL, kas atbilst darbinieka skripta faila ceļam, kas ievieš vēlamo funkcionalitāti. Tomēr, lai iekļautu darbinieka kodu HTML failā, izmantojiet a 'lāse' rakstīt darbinieka kodu.





Sintakse (tīmekļa darbinieka izveide)

konst x = jauns Strādnieks ( 'darbinieks.js' ) ;

Sintakse (ziņojuma nosūtīšana darbiniekam)



konst x = jauns Strādnieks ( 'darbinieks.js' ) ;

Sintakse (Ziņojuma saņemšana no darbinieka)

x. ziņojumā = funkciju ( notikumu ) {
konsole. žurnāls ( notikumu. datus ) ;
} ;

Piemērs: “Web Worker” izmantošana, lai aprēķinātu skaitļa koeficientu JavaScript
Nākamajā piemērā tiek izmantots “Strādnieks ()” konstruktors, lai izveidotu tīmekļa darbinieku un aprēķinātu skaitļa faktoriālu:

DOCTYPE html >
< html >
< galvu >
< h2 stilā = 'text-align: center;' > Tīmekļa darbinieku piemērs h2 >
galvu >
< ķermeni >
< skripts >
konst x = jauns Strādnieks ( URL. CreateObjectURL ( jauns Blob ( [
`
// Darba skripts
konst fakts = ( n ) => {
ja ( n == 0 || n == 1 ) {
atgriezties 1n ;
}
cits {
atgriezties BigInt ( n ) * fakts ( BigInt ( n ) - 1n ) ;
}
} ;
sevi. ziņojumā = ( notikumu ) => {
konst Ar = fakts ( notikumu. datus ) ;
sevi. postZiņojums ( Ar. toString ( ) ) ;
} ; `
] , { veids : 'teksts/javascript' } ) ) ) ;
x. postZiņojums ( 15n ) ;
x. ziņojumā = ( notikumu ) => {
konst ārā = notikumu. datus ;
konsole. žurnāls ( 'Factory of 15 Via Web Worker->' , ārā ) ;
} ;

ķermeni >

html >

Šajā kodā veiciet šādas darbības:

  • Pirmkārt, norādiet norādīto virsrakstu.
  • Pēc tam izveidojiet a 'Tīmekļa darbinieks' objekts ar Blob objekta URL, kas ietver darbinieka kodu.
  • Darba ņēmējam paredzētais kods ir iekļauts anonīmā funkcijā, kas aprēķina skaitļa faktoriālu, izmantojot rekursīvu funkciju.
  • Arī darbinieks klausās ziņojumus, kas nosūtīti, izmantojot galveno pavedienu, izmantojot “self.onmessage” notikumu, izgūst nodotā ​​skaitļa faktoriālu un nodod rezultātu galvenajam pavedienam, izmantojot “postMessage()” metodi.
  • Galvenajā pavedienā izveidojiet darbinieka gadījumu un nosūtiet tai ziņojumu ar numuru ' 15n ”. Šeit, ' n ” attiecas uz “BigInt” vērtību.
  • Kad darbinieks ir pabeidzis faktoriāla aprēķināšanu, tas nosūta rezultātu/rezultātu atpakaļ uz galveno pavedienu, izmantojot “postMessage()” metodi.
  • Visbeidzot, galvenais pavediens ienes/saņem rezultātu “Ziņojums” notikumu un atgriež atbilstošo skaitļa faktoriālu konsolē.

Izvade

Web darbinieku priekšrocības

Paralēlā apstrāde : ja tas pats kods tiek palaists paralēli.

Bez traucējumiem koda izpildē: Koda izpilde tiek veikta neatkarīgi no pašreizējās lapas atsvaidzināšanas utt.

Kustību izsekošana: Visa kustības noteikšana notiek fona darbiniekā.

Iespējota vairāku pavedienu izveide: Tie iespējo vairākpavedienu izmantošanu JavaScript.

Uzlabota veiktspēja: Optimizējiet veiktspēju, veicot intensīvus/izaicinošus uzdevumus atsevišķos pavedienos.

Efektīva lietotāja pieredze: Šādi tiek novērsta galvenā pavediena bloķēšana, kā rezultātā tiek nodrošināta atsaucīga lietotāja pieredze.

Tīmekļa darbinieku ierobežojumi

Tomēr tīmekļa darbiniekiem ir arī daži ierobežojumi. Tie ir norādīti šādi:

  • Lielāka atmiņas izmantošana.
  • Nevar atjaunināt DOM darbinieka pavedienā vai izsaukt loga objektu.

Secinājums

'Tīmekļa darbinieki' atbilst pārlūkprogrammas API, kas ļauj JavaScript palaist uzdevumus vienlaikus atsevišķā/speciālā pavedienā. Tos var izmantot, kā argumentu izmantojot URL, kas atbilst darbinieka skripta faila ceļam. Šajā emuārā tika apspriesta “Web Workers” izmantošana daudzpavedienu izveidei JavaScript.