Werden Web-Mitarbeiter von ionic app profitieren?
Das hängt ganz davon ab, ob Sie eine schwere Verarbeitung haben, die Sie an Web-Arbeiter abladen können.
Als Web-Arbeiter ist nicht etwas sehr Neues, warum gibt es kaum Erwähnung darüber in ionischen oder sogar eckigen?
Da Web-Arbeiter nichts mit UI-Frameworks zu tun hat, weil Code in Web-Arbeiter nicht direkt auf die Benutzeroberfläche des Browsers manipulieren kann (zB kann das DOM nicht manipulieren oder alert
s tun, spielt Audio, etc.). Daher hat der Code von Web-Arbeitern für eine UI-Framework-Bibliothek wenig zu tun, da die Aufgabe dieser Bibliothek hauptsächlich darin besteht, Dinge zu tun, die der Web-Arbeiter nicht tun kann. Stattdessen gibt es einen Hauptthread für die Benutzeroberfläche (den Standard-JavaScript-Thread für die Seite), der das DOM und ähnliches verwenden darf, und hat daher Grund, UI-Framework-Bibliotheken zu verwenden.
Details:
Ursprünglich JavaScript in Webbrowsern liefen auf einem einzigen Thread, der auch die Benutzeroberfläche aktualisiert. Dies führte zu einem sehr einfachen Modell ohne Nebenläufigkeitsprobleme und war enorm einfach und erfolgreich. Aber es ist auch begrenzend: Als JavaScript begann, für immer mehr Dinge verwendet zu werden, wurde dieser eine UI-Thread in der Verarbeitung steckengeblieben, und Browser mussten Heuristiken implementieren, um "langsame Skript" -Warnungen zu machen und so, dass der Benutzer den Browser nicht dachte war gefroren.
Web-Worker wurden eingeführt, damit wir Threads in Browser-gehostetem JavaScript haben und gleichzeitig die leistungsstarke Einfachheit des einzelnen UI-Threads ohne Nebenläufigkeitsprobleme beibehalten können (deshalb teilen sie auch keinen globalen Datenbereich mit anderen) Threads). Sie lassen uns schwere Verarbeitung in anderen Threads durchführen, aber nicht ermöglicht uns die UI in diesen Threads zu aktualisieren.
Diese Arbeit kann indirekt bezogen auf UI sein. Zum Beispiel ist es in modernen Browsern möglich, bestimmte Arten von Objekten, genannt transferrable objects, vom Haupt-UI-Code an den Web-Worker-Code zu senden. IIRC, Leinwände sind übertragbar. Wir umgehen das Problem der Parallelität, denn sobald Sie ein übertragbares Objekt von einem Thread auf einen anderen veröffentlichen, ist es nur im Ziel und nicht mehr in der Quelle verfügbar. Der Hauptbenutzeroberflächenthread, der direkt mit der Benutzeroberfläche interagieren darf, kann also etwas (wie eine Arbeitsfläche) übernehmen und an einen Web-Worker übertragen, um etwas daran zu tun (vielleicht eine Transformation) und es dann zurückzusenden. Da diese Arbeit jedoch nicht direkt die Browser-Benutzeroberfläche (DOM usw.) manipulieren würde, ist es unwahrscheinlich, dass viel Aufruf für die Verwendung einer UI-Framework-Bibliothek erfolgt.
Was versuchen Sie mit Web-Mitarbeitern zu erreichen? – guest271314