Wird web-Arbeitnehmer vorteilhaft auf die ionic-app?

Vor kurzem komme ich auf web-worker, es ist ein Weg, um Ihre Skripte parallel laufen. Geben Sie Ihr Skript im hintergrund laufen, ohne „einfrieren“ der Benutzeroberfläche. Wenn ich herausgefunden habe, ich denke, ich habe gefunden eine neue Technik zu implementieren, in meinem ionic-app, die sollten erhebliche UX performance-Verbesserung.

Aber nach einigem suchen habe ich fast alle Artikel sprechen Sie über die web-worker in Ionischer. Als web-worker ist nicht etwas ganz neues, weshalb es kaum erwähnen es in Ionischer oder auch Eckig? Ist ionic ist nicht geeignet zu implementieren? Oder ist es etwas anderes, das ich übersehen?

  • Was versuchen Sie zu erreichen mit web worker?
InformationsquelleAutor user1995781 | 2016-04-10



One Reply
  1. 10

    Wird web-Arbeitnehmer vorteilhaft auf die ionic-app?

    Das hängt ganz davon ab, ob Sie haben einige schwere Verarbeitung, die man verschieben kann auf web-worker.

    Als web-worker ist nicht etwas ganz neues, weshalb es kaum erwähnen es in Ionischer oder auch Eckig?

    Da web-worker haben nichts zu tun mit UI frameworks, da der code im web-worker kann nicht direkt manipulieren der Benutzeroberfläche des Browsers (z.B., nicht das DOM manipulieren, oder tun alerts, audio Abspielen, etc.). Also web-worker-code hat wenig bis keine Verwendung für ein UI-framework-Bibliothek, die Bibliothek hat die Aufgabe weitgehend, Dinge zu tun, die web-worker kann das nicht tun. Stattdessen gibt es eine Haupt-UI-thread (die Standard-JavaScript-thread für die Seite), die es erlaubt, das DOM verwenden, und so weiter, und so hat er Grund zu verwenden UI-framework-Bibliotheken.

    Details:

    Ursprünglich JavaScript im web-Browser lief auf einem einzigen thread, die auch die Benutzeroberfläche aktualisiert. Dies sorgte für ein sehr einfaches Modell ohne concurrency-Probleme und war sehr einfach und erfolgreich. Es ist aber auch eine Beschränkung: Da JavaScript angefangen, sich für mehr und mehr Dinge, die einen UI-thread zu festgefahren in Verarbeitung und Browser umzusetzen hatte Heuristiken zu tun „langsames Skript“ Warnhinweise und solche, so dass der Benutzer nicht denken, der browser war eingefroren.

    Web-Arbeiter wurden eingeführt, um die wir uns in threads im browser gehostete JavaScript, während die kraftvolle Einfachheit der einzelnen UI-thread ohne concurrency-Probleme (das ist auch der Grund, warum Sie nicht teilen, eine Globale Daten-Bereich mit anderen threads). Sie lassen uns tun, schwere Verarbeitung in anderen threads, aber nicht ermöglicht uns die Aktualisierung der Benutzeroberfläche in diese threads.

    Arbeit werden indirekt Bezug auf UI. Zum Beispiel auf modernen Browsern ist es möglich zum senden von bestimmten Arten von Objekten, genannt übertragbar Objekte, von der Haupt-UI-code zu web-worker-Codes. Wenn ich mich Recht erinnere, Leinwände sind übertragbar. Wir Holen Sie rund um die Parallelität Problem, denn sobald Sie ein übertragbares Objekt von einem thread zu einem anderen, es ist nur zugänglich in der Ziel -, nicht in der Quelle mehr. Also die Haupt-UI-thread, was erlaubt ist, um die direkte Interaktion mit dem UI kann etwas dauern (wie eine Leinwand) und übertragung auf einen web worker, um etwas zu tun zu haben (eine Transformation, vielleicht) und dann schicken Sie es zurück. Aber da, die Arbeit würde nicht beinhalten, die direkt mit der Manipulation der browser-Benutzeroberfläche (DOM, etc.), es ist unwahrscheinlich, dass viel Anruf, die Verwendung einer UI-framework-Bibliothek.

    • Danke für deine Antwort. Lassen Sie uns sagen, ich habe einige UI-Verarbeitung, kann ich offload es auf web-worker? Nachdem die Verarbeitung beendet ist, dann das Ergebnis zu erhalten und schieben Sie es auf das UI?
    • Es hängt von der Verarbeitung. In up-to-date-Browser, ist es möglich, transfer eine Leinwand von der Haupt-UI-thread in einen web-worker, manipulieren die Leinwand in der web-worker, und übertragen Sie es dann zurück an den main-UI-thread, die können es wieder einzublenden. Dies ist, weil die Leinwände sind übertragbar objects: der Akt Der ein posting auf oder von einem web-worker, gilt es in der Sendung Kontext, und ermöglicht den Empfang von Rahmen zu verwenden. (Ich bin nicht sofort sicher, ob die Leinwand übertragbar ist, oder nur die Bild-Daten).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.