hurtig tip: javascript web arbejdere gå hårdt arbejde på baggrund

, hurtigt tip: javascript web arbejdstagere går hårdt arbejde til baggrunden,,,,, andel,,,,,,,, 6,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, en web - arbejdstager er det manuskript, der kører i baggrunden, adskilt fra andre manuskripter, der giver os mulighed for at indføre gevindskæring i vores net apps.skønt de ikke er en del af html5 spec, web arbejdstagere kan anvendes med html5 apps.i denne hurtige tips, vil vi se på, hvordan man bruger dem,.,,,, introduktion til web - arbejdstagere, i det land, html5, vi har nogle meget interessante apis - oplysninger.nogle af dem – som web arbejdstagere – er nyttige til at øge ydeevnen, der er meget vigtig for både sikkerhed og lege.men hvordan web - arbejdstagere.- arbejde?hvert tilfælde af et web - arbejdstager, skaber en tråd, der løber i dine javascript.du instantiate en sådan her:, var arbejdstager = ny arbejdstager ('filename. j 'er ")," filnavn. det er navnet på fil, der indeholder dit manuskript.for arbejdstagere er individuelle miljøer, du kan ikke bruge kode indbygget direkte i html, skal du bruge en separat fil.,, kommunikation: sende og modtage data, arbejdstagere har ikke adgang til side dom eller den globale mål, så hvordan kan de kommunikerer med?det er simpelt.når du ønsker at sende nogle data fra deres side til en arbejdstager, de henviser til, postmessage(),., det tager et parameter: data til at sende, som enten kan være en streng eller en json parsable objekt (hvilket betyder, at du ikke kan passere funktioner eller cirkulære referencer, eller du får en, dom_exception,).på nogle browsere, der er et problem med genstande, så det er altid bedre manuelt at analysere formålet med, json. parse(), så du behøver ikke at bekymre dig om ufuldstændig gennemførelse. det samme gælder, hvis du sender data fra en arbejdstager til side: kun påberåbe sig, postmessage(), selv, som henviser til arbejdstagerens globale rækkevidde.- du gør det i arbejdstagerens manuskript, selvfølgelig. så får de oplysninger, de har til at fastgøre en, onmessage event - kontaktperson.der er to måder at gøre det på, ligesom med regelmæssige begivenheder for dom elementer; du kan enten direkte tildeler en funktion til arbejdstagerens, onmessage, ejendom, eller du kan bruge, addeventlistener(),. //første: worker.onmessage = funktion (e) (konsol. log (e.data); //log de overførte data) //anden måde: arbejdstager. addeventlistener ('message, funktion (e) (konsol. log (e.data); //log overførte data}), det er dit valg, som metode til at bruge.uanset hvad, så funktion er parameter, vil være en begivenhed, genstand, og de data, de har sendt efter, postmessage(), overføres via, data, tilhører denne begivenhed.,, eksterne manuskripter og biblioteker, okay, men hvad nu, hvis vi skal bruge nogle eksterne bibliotek?vi har ikke adgang til dom eller det globale omfang, så vi kan ikke bare give manuskriptet. naturligvis har vi ikke brug for at – der er en opgave for det.det kaldes, importscripts(), og det accepterer en eller flere argumenter: manuskript navne til last i anvendelsesområdet for arbejdstageren.du skal være klar over, at manuskripter over i denne funktion er lastet i en tilfældig rækkefølge, men de vil blive henrettet som fastsat og manuskript gennemførelse vil blive sat på pause, indtil de er fyldt. importscripts ('one-lib. j 'er "); //belastninger manuskript importscripts ('first-lib. j' er", "anden l. j 'er", "tredje lib. er'); //belastninger tre manuskripter, du kan bruge, importscripts, hvor som helst i din kode, der gør det let at skabe jsonp anmodninger inden for de arbejdstagere, som vi vil gøre i følgende eksempel.,, f.eks. arbejdstagere i handling, så nu er du sikkert gerne se en arbejdstager i aktion.i stedet for at vise noget temmelig ubrugelig som opnåelse af primes eller fibonacci - talrækken, jeg har besluttet at gøre noget, som du måske brug efter et par ændringer. eksemplet manuskript (jeg har medtaget arbejdstagerens kode, resten er let at gøre) vil få de sidste 100 tweets fra @ envatoactive (vi er nødt til at de tæller til 121 i stedet for 100, så tweeter api sender færre tweets end anmodede – spørg mig ikke hvorfor, ved jeg ikke. her er den kode, der ville gå ind til selve web arbejdstager manuskript fil: //hjælper funktion for behandling af data var proces = funktion (data) (////////iterate gennem data; vi ved, at det er et system, så det er sikkert for (var - jeg = 0, v v = data [i]; jeg + +) (//og give tweet tekst til side self.postmessalder ({tekst: v.text})} //efter arbejde er gjort, så lad den side ved sig selv. postmessage ("færdig");} //lægger begivenhed til at lytte til at klare budskaber, selv. addeventlistener ('message, funktion (ref.) (//se om command sendt, var "start" //ikke - nødvendig her, men det kan være nyttigt, hvis (event.data = = "start") (//svar på den side, som vi startede arbejdet selv. postmessage ("i gang"); //kerne af manuskriptet, få tweets //den callback parameter specificerer den funktion at henrette efter anmodning gøres /(vi kalder process() funktion som defineret ovenfor). //- skal være 121, fordi tweeter api sender lavere beløb af data om importscripts ("http://twitter.com/statuses/user_timeline/envatoactive.json?callback = proces & - = 121)}}), burde det være let at forstå, hvordan det hele fungerer fra bemærkninger.det lader din app belastning alle beskeder i baggrunden, ved hjælp af en særskilt tråd., prøv nu at indsætte følgende tilsvarende kode, som ikke bruge web arbejdstagere ind i hovedet på en tom side i stedet, og forsinkelsen.- det er lille, men forestil dig, hvis du fik ikke 100, men 100.000 tweets):, < manuskript type = "tekst /javascript" > var proces = funktion (data) (//iterate gennem data; vi ved, at det er et system, så det er sikkert for (var - = 0, v v = data [i]; jeg + +) (//og log tweet tekst til konsollen konsol. log (v.text)}} < /manuskript > < manuskript src = "http://twitter.com/statuses/user_timeline/envatoactive.json?callback = proces & - = 121 "> < /manuskript >,, konklusioner, som du kan se, web arbejdstagere tilbyde dig en enkel måde at fjerne lag fra din gui og komplicerede beregninger eller netværk til særskilte tråde. jeg håber, du lærte noget nyt fra denne artikel - måske du vil bruge arbejdstagere i din næste projekt?hvis du har spørgsmål eller problemer specicer venligst nedenfor.



Previous:
Next Page: