Meta tags:
description= JavaScript Web Workers ausführen: Code im Hintergrund-Thread, UI responsiv halten, mit postMessage kommunizieren und Daten mit Transferable Objects effizient…;
Headings (most frequently used words):
workers, web, javascript, warum, timer, nicht, ausreichen, einen, worker, erstellen, nachrichten, mit, postmessage, der, globale, geltungsbereich, eines, fehlerbehandlung, und, beenden, transferable, objects, verschieben, statt, kopieren, module, andere, arten, von, wann, einsetzen, testet, euer, wissen,
Text of the page (most frequently used words):
und (90), #worker (69), der (47), die (38), #workers (32), ist (27), das (26), dom (26), thread (23), web (21), auf (21), ein (21), api (20), event (19), postmessage (18), javascript (17), mit (17), kopieren (16), buffer (16), lernen (15), eine (15), einen (14), data (14), von (13), wird (12), haupt (12), nicht (11), sie (11), werden (11), self (11), code (10), dem (10), kann (10), den (10), wenn (10), über (9), eines (9), seite (9), the (9), methoden (9), html (8), kein (8), new (8), console (8), für (7), objects (7), zum (7), sich (7), document (7), man (7), als (7), onmessage (7), const (7), einem (7), json (6), tools (6), this (6), mehr (6), string (6), daten (6), objekt (6), innerhalb (6), fetch (6), arbeit (6), gibt (6), w3docs (5), andere (5), module (5), nachrichten (5), page (5), service (5), was (5), oder (5), des (5), aufgabe (5), sind (5), browser (5), arrays (5), arraybuffer (5), log (5), objekte (5), settimeout (5), fib (5), funktionen (5), events (5), formatter (5), color (5), alle (4), generator (4), css (4), transferable (4), fehlerbehandlung (4), beenden (4), timer (4), kopie (4), ohne (4), aber (4), verwenden (4), wie (4), übergeben (4), keinen (4), bleibt (4), dedicated (4), nachricht (4), indem (4), error (4), ausführung (4), function (4), main (4), keine (4), datei (4), loop (4), shadow (4), async (4), einführung (4), encoder (3), editor (3), quizze (3), übungen (3), php (3), globale (3), geltungsbereich (3), erstellen (3), prüfen (3), direkt (3), sodass (3), übertragen (3), übertragung (3), übung (3), geteilt (3), structured (3), kopiert (3), standardmäßig (3), nur (3), teilen (3), zugriff (3), zugreifen (3), netzwerk (3), cpu (3), dass (3), ergebnis (3), ruckeln (3), zurück (3), tabs (3), ermöglichen (3), ihr (3), unter (3), einzelne (3), macht (3), from (3), import (3), speicher (3), diese (3), viele (3), weiter (3), läuft (3), bis (3), onerror (3), setinterval (3), alles (3), window (3), result (3), aus (3), kommunizieren (3), variablen (3), url (3), dieser (3), total (3), hintergrund (3), flag (3), and (3), eigenschaften (3), promise (3), operatoren (3), italiano (2), português (2), español (2), français (2), русский (2), deutsch (2), english (2), beautifier (2), diff (2), password (2), python (2), java (2), git (2), bücher (2), snippets (2), testet (2), euer (2), wissen (2), wann (2), einsetzen (2), arten (2), verschieben (2), statt (2), warum (2), ausreichen (2), midi (2), beide (2), threads (2), besitz (2), sender (2), hauptvorteil (2), arraybuffers (2), seiten (2), mutationen (2), clone (2), algorithm (2), gelangen (2), nach (2), asynchron (2), selbst (2), verarbeitung (2), großer (2), rendern (2), zurückgegeben (2), parsen (2), bild (2), immer (2), dann (2), derselben (2), netzwerkanfragen (2), offline (2), sharedworker (2), proxy (2), push (2), dazu (2), messageport (2), erstellt (2), gehört (2), ihn (2), typen (2), können (2), modul (2), standard (2), neuen (2), imports (2), strict (2), compress (2), type (2), skript (2), statische (2), dynamische (2), importscripts (2), inhalt (2), muss (2), auch (2), nutzlast (2), etwas (2), aufgelistet (2), darauf (2), binäre (2), bytelength (2), use (2), copy (2), 1024 (2), einer (2), anderen (2), frei (2), verarbeiten (2), fertig (2), terminate (2), sofort (2), fehler (2), arbeiten (2), abgeschlossen (2), indexeddb (2), textdecoder (2), textencoder (2), xmlhttprequest (2), laden (2), skripte (2), apis (2), noch (2), verändern (2), sendet (2), klicks (2), sein (2), hier (2), berechnet (2), strings (2), knoten (2), set (2), map (2), kommunikation (2), hello (2), received (2), beiden (2), konstruktor (2), reagieren (2), während (2), let (2), freezes (2), tut (2), ausführen (2), führt (2), ende (2), funktion (2), array (2), scrollen (2), file (2), suche (2), muster (2), quantoren (2), anker (2), flags (2), components (2), animationen (2), microtasks (2), formulare (2), benutzerdefinierte (2), ereignisse (2), styles (2), klassen (2), generatoren (2), advanced (2), await (2), promises (2), chaining (2), erweitern (2), handling (2), class (2), prototypes (2), interaktive (2), elemente (2), property (2), object (2), arrow (2), syntax (2), functions (2), hash (2), 2026, rechte, vorbehalten, entwickler, gemacht, sprache, datenschutzrichtlinie, kontakt, uns, unternehmen, probier, üben, kostenlose, tutorials, beispiele, seit, 2014, next, previous, yes, helpful, erlaubt, schreiben, dupliziert, nutzbare, behalten, ausschließlich, serialisiert, per, referenz, sehen, aufruf, allowdom, nein, haben, engpass, braucht, regel, bereits, blockierend, glänzen, dafür, sorgt, beschäftigt, berechnen, warten, datensätze, bevor, kompaktes, kryptografie, hashing, verschlüsseln, eingabe, einzufrieren, komprimieren, dateien, csv, archive, videoverarbeitung, einschließlich, pixelmanipulation, außerhalb, bildschirms, schwere, berechnungen, physik, datenanalyse, große, sortierungen, aggregationen, lohnen, gebunden, lang, genug, wahrgenommen, faustregel, greift, intensive, vom, verlagern, website, steuern, fähige, apps, info, spezieller, fungiert, zwischen, sitzt, caching, unterstützung, benachrichtigungen, ereignisgesteuert, lebensdauer, hinaus, bestehen, berechnung, auslagern, findet, instanz, mehrere, fenster, iframes, desselben, verbinden, damit, nützlich, zustände, netzwerkverbindung, hinweg, koordinieren, schnellerer, geteilter, ursprungs, einfaches, einzelnen, gestartet, hat, zwei, verwandte, unterschiedliche, unterscheiden, sollte, moderne, echte, mode, saubereren, abhängigkeitsgraphen, compression, verwendet, daher, anstelle, modulsyntax, anweisungen, klassisches, zweiten, arguments, erscheinen, transferierbar, erreichbar, wirft, datacloneerror, referenziert, hinweis, sendenden, nun, ideal, aufbauenden, typed, erklärt, binärdaten, strukturiert, weitere, transferables, offscreencanvas, imagebitmap, can, longer, transfer, ownership, aktiviert, dies, zweites, argument, übergibt, liste, übertragenden, cloning, praktisch, bei, großen, binären, kostet, sowohl, zeit, stattdessen, verschoben, verliert, inaktiver, langlebige, problemlos, laufen, close, inside, innen, sobald, lange, gestoppt, außen, stoppen, beendet, laufende, abgebrochen, lineno, filename, message, abgefangenen, auslöst, sichtbar, hervorragenden, ort, netzwerkabrufe, parsing, komprimierung, verschlüsselung, liefern, zurückgesendet, websocket, crypto, synchronen, klassischer, jedoch, leer, bietet, nützliche, seitenelemente, visuelle, einschränkung, sicher, parallele, gemeinsamen, zustand, beschädigt, könnte, warnung, entscheidend, weder, lesen, aktualisierung, benötigt, überlässt, dedicatedworkerglobalscope, schickt, anfrage, kehrt, zur, rendering, trifft, einfrieren, ladeindikators, return, stays, interactive, while, runs, vollständiger, hin, rückweg, fibonacci, zahl, naiven, rekursiven, algorithmus, absichtlich, langsam, genau, art, bringen, würde, liefe, gesendeten, mithilfe, bedeutet, könnt, numbers, booleans, einfache, klasseninstanzen, handelt, wirken, nie, date, bidirektional, ruft, lauscht, empfängt, jeder, handler, erhält, nutzdaten, befinden, eigenschaft, messageevent, back, kleinste, vollständige, paar, startet, lädt, herunter, beginnt, diesem, punkt, separate, verweist, anders, ausgeführt, seine, erledigt, völlig, 5_000_000_000, for, still, just, 50ms, later, häufiger, erster, instinkt, langsame, verpacken, hoffen, spätere, runde, callback, schließlich, ausgelöst, blockiert, dabei, seiner, warteschlange, tatsächlich, funktioniert, erfahrt, scheduling, verzögern, lösen, dieses, problem, separaten, parallel, aufwendige, verlässt, kritischen, pfad, reaktionsfähig, miteinander, austauschen, einzigen, demselben, seitenlayout, pixel, zeichnet, sowie, tastendrücke, verarbeitet, herzstück, nimmt, geht, also, wirklich, aufwendiges, großes, mehrstufige, passwort, tausende, male, hashen, steckt, fest, nichts, anderes, passieren, ruckelt, schaltflächen, wirkt, eingefroren, responsiv, halten, effizient, intl, vibration, notifications, audio, webrtc, geolocation, websockets, storage, validation, fullscreen, history, screen, orientation, webgl, battery, animations, regexp, sticky, position, katastrophales, backtracking, lookahead, lookbehind, alternation, rückwärtsreferenzen, name, erfassungsgruppen, gierige, faule, sets, ranges, escaping, sonderzeichen, wortgrenze, mehrzeiliger, modus, anfang, unicode, klasse, zeichenklassen, regex, regular, expressions, styling, slots, komposition, template, element, custom, elements, animation, localstorage, sessionstorage, cookies, cookie, storing, wiederaufnehmbarer, dateiupload, server, sent, ursprungsübergreifende, anfragen, abbruch, download, fortschritt, formdata, network, requests, canvas, references, macrotasks, selection, range, resizeobserver, intersectionobserver, mutation, observer, various, ressourcen, onload, scripts, defer, domcontentloaded, load, beforeunload, unload, resource, loading, ereignis, methode, submit, clipboard, change, input, cut, paste, fokussierung, focus, blur, formulareigenschaften, forms, controls, scrolling, tastatur, keydown, keyup, drag, drop, mausbewegungen, mausereignisse, grundlagen, auslösen, browseraktionen, delegation, bubbling, capturing, introduction, koordinaten, fenstergrößen, dokument, attribute, knoteneigenschaften, typ, tag, getelement, queryselector, browserumgebung, spezifikationen, streams, filereader, blob, binary, files, fensterübergreifende, popups, frames, windows, polyfills, transpiler, bigint, currying, eval, reflect, miscellaneous, export, modules, iteratoren, generators, iteration, promisification, callbacks, try, catch, mixins, checking, instanceof, eingebaute, private, geschützte, klassenvererbung, grundsyntax, classes, prototyp, __proto__, native, prototypale, vererbung, inheritance, widgets, performance, optimierung, debugging, barrierefreiheit, kompatibilität, manipulationsbibliotheken, fortgeschrittene, techniken, manipulationstechniken, traversieren, manipulieren, auswählen, getter, setter, deskriptoren, properties, configuration, closures, vertieft, binding, debounce, throttle, dekoratoren, weiterleitung, call, apply, nfe, globales, alte, var, scope, rest, parameter, spread, rekursion, stack, tojson, datum, uhrzeit, destructuring, assignment, keys, values, entries, weakmap, weakset, iterables, math, zahlen, primitiven, types, optional, operator, primitiv, konvertierung, symbol, garbage, collection, objektmethoden, basics, es6, funktionsausdrücke, schleifen, switch, bedingte, nullish, coalescing, logische, vergleichsoperatoren, typkonvertierungen, datentypen, kommentare, basic, anmelden, durchsuchen, formatters, reverse, sha256, md5, length, calculator, colors, hsl, hex, mixer, converter, picker, general, kurse,
Text of the page (random words):
oren js property getter und setter javascript html dom dom einführung die dom knoten dom elemente auswählen den dom manipulieren arbeiten mit styles im dom event handling im dom dom traversieren dom manipulationstechniken formulare im dom verwenden fortgeschrittene dom techniken dom manipulationsbibliotheken dom browser kompatibilität dom barrierefreiheit debugging und tools performance optimierung interaktive elemente und widgets prototypes inheritance js prototypale vererbung js native prototypes js prototyp methoden objekte ohne __proto__ classes js class grundsyntax js klassenvererbung statische eigenschaften und methoden private und geschützte eigenschaften in js js eingebaute klassen erweitern js class checking instanceof js mixins error handling js fehlerbehandlung try catch js benutzerdefinierte fehler error erweitern promises async await js einführung callbacks js promise js promise chaining js fehlerbehandlung mit promises promise api promisification microtasks async await generators advanced iteration generatoren async iteratoren und generatoren modules module export und import dynamische imports miscellaneous proxy und reflect eval currying bigint js polyfills transpiler frames and windows popups und window methoden fensterübergreifende kommunikation binary data files arraybuffer binäre arrays textdecoder und textencoder blob file und filereader js streams api document browserumgebung spezifikationen suche getelement queryselector knoteneigenschaften typ tag und inhalt attribute und eigenschaften das dokument verändern styles und klassen fenstergrößen und scrollen koordinaten introduction to events javascript einführung in browser ereignisse bubbling und capturing event delegation standard browseraktionen benutzerdefinierte ereignisse auslösen ui events mausereignisse grundlagen mausbewegungen drag and drop tastatur keydown und keyup scrolling forms controls formulareigenschaften und methoden fokussierung focus blur events change input cut copy paste js clipboard api formulare ereignis und methode submit document and resource loading page domcontentloaded load beforeunload unload scripts async defer ressourcen laden onload und onerror various mutation observer js intersectionobserver js resizeobserver selection und range event loop microtasks und macrotasks javascript references canvas network requests fetch api formdata fetch download fortschritt fetch abbruch fetch ursprungsübergreifende anfragen url objekte xmlhttprequest js server sent events wiederaufnehmbarer dateiupload storing data in the browser cookies document cookie localstorage sessionstorage indexeddb animation css animationen javascript animationen web components web components custom elements shadow dom template element shadow dom slots komposition shadow dom styling shadow dom und events regular expressions js regex muster und flags zeichenklassen unicode flag u und klasse p anker string anfang und ende mehrzeiliger modus der anker flag m wortgrenze b escaping sonderzeichen sets und ranges quantoren und n gierige und faule quantoren erfassungsgruppen rückwärtsreferenzen im muster n und k name javascript alternation or lookahead und lookbehind katastrophales backtracking sticky flag y suche an position methoden von regexp und string javascript apis web animations api file api battery api webgl push api screen orientation api history api console api fullscreen api validation api web storage api web midi api js web workers service workers websockets geolocation webrtc web audio api notifications api die vibration api js intl api javascript web workers javascript web workers ausführen code im hintergrund thread ui responsiv halten mit postmessage kommunizieren und daten mit transferable objects effizient übergeben javascript führt code auf einem einzigen haupt thread aus demselben thread der das seitenlayout berechnet pixel zeichnet und klicks sowie tastendrücke verarbeitet dieser einzelne thread ist das herzstück der event loop er nimmt eine aufgabe führt sie bis zum ende aus und geht dann weiter wenn eine funktion also etwas wirklich aufwendiges tut ein großes array verarbeiten eine mehrstufige datei parsen ein passwort tausende male hashen steckt die loop innerhalb dieser funktion fest nichts anderes kann passieren das scrollen ruckelt schaltflächen reagieren nicht mehr die seite wirkt eingefroren bis die arbeit abgeschlossen ist web workers lösen dieses problem indem sie ein skript auf einem separaten hintergrund thread parallel zum haupt thread ausführen die aufwendige arbeit verlässt den kritischen pfad die ui bleibt reaktionsfähig und die beiden threads kommunizieren miteinander indem sie nachrichten austauschen warum timer nicht ausreichen ein häufiger erster instinkt ist es langsame arbeit in settimeout zu verpacken und zu hoffen dass sie im hintergrund läuft das tut sie nicht timer verzögern eine aufgabe nur auf eine spätere runde derselben loop wenn der callback schließlich ausgelöst wird läuft er immer noch auf dem haupt thread und blockiert dabei alles während seiner ausführung mehr dazu wie diese warteschlange tatsächlich funktioniert erfahrt ihr unter scheduling mit settimeout und setinterval this still freezes the page it just freezes it 50ms later settimeout let total 0 for let i 0 i 5_000_000_000 i total i console log total 50 kopieren ein web worker ist anders sein code wird auf einem völlig anderen thread ausgeführt sodass der haupt thread frei bleibt weiter zu rendern und zu reagieren während der worker seine aufgabe erledigt einen worker erstellen ein worker ist eine separate javascript datei man erstellt einen indem man den worker konstruktor auf die url dieser datei verweist const worker new worker worker js kopieren der browser startet einen neuen thread lädt worker js herunter und beginnt mit der ausführung von diesem punkt an kommunizieren die beiden skripte nur über nachrichten sie teilen keine variablen keine funktionen und keine objekte hier ist das kleinste vollständige datei paar main js const worker new worker worker js worker postmessage hello from the main thread worker onmessage event console log main received event data kopieren worker js self onmessage event console log worker received event data self postmessage hello back from the worker kopieren nachrichten mit postmessage die kommunikation ist bidirektional und asynchron der haupt thread ruft worker postmessage data auf und lauscht mit worker onmessage innerhalb des workers sendet self postmessage data zurück und self onmessage empfängt jeder handler erhält ein messageevent und die nutzdaten befinden sich in der data eigenschaft die gesendeten daten werden kopiert nicht geteilt mithilfe des structured clone algorithm das bedeutet ihr könnt strings numbers booleans arrays einfache objects map set date arraybuffer und mehr übergeben aber keine funktionen dom knoten oder klasseninstanzen mit methoden da es sich um eine kopie handelt wirken mutationen an einem objekt auf einer seite nie auf die andere aus hier ist ein vollständiger hin und rückweg der worker berechnet die n te fibonacci zahl mit dem naiven rekursiven algorithmus absichtlich langsam genau die art von arbeit die die ui zum ruckeln bringen würde wenn sie auf dem haupt thread liefe main js const worker new worker worker js worker onmessage event console log fib event data n event data result the page stays interactive while this runs on the worker thread worker postmessage n 42 kopieren worker js function fib n return n 2 n fib n 1 fib n 2 self onmessage event const n event data const result fib n self postmessage n result kopieren der haupt thread schickt die anfrage ab und kehrt sofort zur verarbeitung von klicks und dem rendering zurück wenn der worker fertig ist trifft sein ergebnis als nachricht ein kein einfrieren kein ruckeln des ladeindikators der globale geltungsbereich eines workers innerhalb eines workers gibt es kein window das globale objekt ist self ein dedicatedworkerglobalscope und entscheidend ist dass es kein document und kein dom gibt ein worker kann die seite weder lesen noch verändern wenn er eine ui aktualisierung benötigt sendet er eine nachricht und überlässt dem haupt thread die ausführung warnung code innerhalb eines web workers kann nicht auf das dom zugreifen es gibt kein document kein window und keinen zugriff auf seitenelemente alles visuelle muss über postmessage an den haupt thread zurückgegeben werden diese einschränkung macht workers sicher für die parallele ausführung es gibt keinen gemeinsamen ui zustand der beschädigt werden könnte workers sind jedoch alles andere als leer der worker geltungsbereich bietet viele nützliche apis importscripts a js b js zum synchronen laden klassischer skripte fetch und xmlhttprequest für netzwerkanfragen timer settimeout setinterval console crypto textencoder textdecoder websocket indexeddb und viele mehr das macht workers zu einem hervorragenden ort für netzwerkabrufe parsing komprimierung und verschlüsselung arbeiten die in sich abgeschlossen sind und ein ergebnis liefern das an die seite zurückgesendet werden kann fehlerbehandlung und beenden wenn ein worker einen nicht abgefangenen fehler auslöst wird er im haupt thread über worker onerror sichtbar worker onerror event console error worker error event message event filename event lineno kopieren ein worker läuft so lange bis er gestoppt wird man kann ihn von außen mit worker terminate stoppen was den thread sofort beendet laufende arbeit wird abgebrochen worker terminate kopieren oder der worker kann sich selbst von innen beenden sobald er fertig ist inside worker js self close kopieren das beenden inaktiver workers gibt speicher frei langlebige workers die viele nachrichten verarbeiten können problemlos weiter laufen transferable objects verschieben statt kopieren structured cloning ist praktisch aber es kopiert die daten bei einer großen binären nutzlast z b einem 50 mb bild buffer kostet das kopieren sowohl speicher als auch zeit transferable objects ermöglichen es den besitz stattdessen zu übertragen die daten werden ohne kopie auf den anderen thread verschoben und der sender verliert den zugriff darauf man aktiviert dies indem man ein zweites argument an postmessage übergibt eine liste der zu übertragenden objekte const buffer new arraybuffer 64 1024 1024 64 mb transfer ownership of the buffer to the worker no copy worker postmessage buffer buffer console log buffer bytelength 0 this thread can no longer use it kopieren nach der übertragung ist buffer bytelength auf der sendenden seite 0 der speicher gehört nun dem worker das übertragen ist ideal für arraybuffer s und die darauf aufbauenden typed arrays unter arraybuffer und binäre arrays ist erklärt wie diese binärdaten strukturiert sind weitere transferables sind messageport imagebitmap und offscreencanvas hinweis der inhalt des zweiten arguments muss auch in der nachricht erscheinen in worker postmessage buffer buffer wird der buffer von der nutzlast referenziert und als transferierbar aufgelistet wenn etwas aufgelistet wird das von der nachricht nicht erreichbar ist wirft der browser einen datacloneerror module workers standardmäßig ist ein worker ein klassisches skript und verwendet daher importscripts anstelle von es modulsyntax mit type module wird der worker zu einem modul worker der statische und dynamische import anweisungen verwenden kann const worker new worker worker js type module kopieren worker js import compress from compression js self onmessage event self postmessage compress event data kopieren modul workers sind der moderne standard für neuen code sie ermöglichen echte imports den strict mode und einen saubereren abhängigkeitsgraphen andere arten von workers ein einfaches new worker erstellt einen dedicated worker er gehört zu der einzelnen seite die ihn gestartet hat es gibt zwei verwandte aber unterschiedliche worker typen die man unterscheiden können sollte sharedworker eine einzelne worker instanz die über mehrere tabs fenster oder iframes desselben ursprungs geteilt wird seiten verbinden sich damit über einen messageport was es nützlich macht um zustände oder eine einzelne netzwerkverbindung über tabs hinweg zu koordinieren es ist kein schnellerer dedicated worker es ist ein geteilter service worker ein spezieller worker der als netzwerk proxy fungiert und zwischen der seite und dem netzwerk sitzt um caching offline unterstützung und push benachrichtigungen zu ermöglichen er ist ereignisgesteuert und bleibt über die lebensdauer der seite hinaus bestehen das ist eine andere aufgabe als die eines dedicated workers berechnung auslagern dazu findet ihr mehr unter service workers i info faustregel greift auf einen dedicated web worker zurück um cpu intensive arbeit vom haupt thread zu verlagern auf einen sharedworker um einen worker über tabs derselben website zu teilen und auf einen service worker um netzwerkanfragen zu steuern und offline fähige apps zu erstellen wann web workers einsetzen web workers lohnen sich immer dann wenn eine aufgabe cpu gebunden und lang genug ist um als ruckeln wahrgenommen zu werden schwere berechnungen physik datenanalyse große sortierungen und aggregationen bild und videoverarbeitung einschließlich pixelmanipulation außerhalb des bildschirms parsen und komprimieren großer dateien csv json archive kryptografie hashing und verschlüsseln ohne die eingabe einzufrieren verarbeitung großer datensätze bevor ein kompaktes ergebnis zum rendern zurückgegeben wird wenn der engpass das warten auf das netzwerk ist und nicht das berechnen braucht man in der regel keinen worker fetch ist bereits asynchron und nicht blockierend workers glänzen wenn die cpu selbst dafür sorgt dass der haupt thread beschäftigt bleibt testet euer wissen übung kann code innerhalb eines web workers direkt auf das dom zugreifen kann code innerhalb eines web workers direkt auf das dom zugreifen nein workers haben keinen zugriff auf document oder das dom ja workers teilen sich das document objekt der seite nur nach dem aufruf von self allowdom prüfen übung wie gelangen daten die an worker postmessage data übergeben werden standardmäßig zum worker wie gelangen daten die an worker postmessage data übergeben werden standardmäßig zum worker sie werden mit dem structured clone algorithm kopiert sie werden per referenz geteilt sodass beide seiten mutationen sehen sie werden ausschließlich in einen json string serialisiert prüfen übung was ist der hauptvorteil der übertragung eines arraybuffers mit worker postmessage buffer buffer was ist der hauptvorteil der übertragung eines arraybuffers mit worker postmessage buffer buffer der besitz wird ohne kopie übertragen aber der sender kann den buffer nicht mehr verwenden der buffer wird dupliziert sodass beide threads eine nutzbare kopie behalten es erlaubt dem worker direkt in das dom zu schreiben prüfen was this page helpful yes no previous web midi api next service workers on this page warum timer nicht ausreichen einen worker erstellen nachrichten mit postm...
|