2016-04-29 6 views
1

Ich weiß, dass Canvas-Tags oder andere Tag nicht innerhalb eines Web-Worker erstellt werden kann, aber der Web-Worker kann Ajax-Aufrufe tätigen. Wäre es effizienter, Bilder zu zeichnen, um einen Web-Worker zu erstellen, einen Ajax-Aufruf an eine andere Datei auszuführen, die dann eine Zeichenfläche generiert und die Daten von "getImageData" zurückgibt?Canvas-API und Web-Worker

+0

Ich kann mir keinen Fall vorstellen, in dem das Routing über Remote-Anrufe (Ajax) effizienter wäre als das in Web-Worker integrierte direkte Messaging. – markE

+0

Nein, es ist schneller, Haupt-Thread dafür zu verwenden. Wir reden über Prozessor-Netzwerk-Geschwindigkeit, es ist offensichtlich! –

Antwort

2

Wenn Sie einige Daten verarbeiten müssen (die Sie von Ajax erhalten), dann sollten Sie nur einen Web Worker verwenden. Wenn Sie beispielsweise den Durchschnittspreis von Aktien über eine Woche berechnen und dann als Balkendiagramm anzeigen möchten und Daten des gesamten Jahres haben, können Sie hierfür einen Web-Mitarbeiter verwenden. Sonst hat es keinen Sinn, einen Web-Worker nur für einen Ajax-Aufruf zu verwenden, um diese Daten wieder an den ui-Thread zurückzugeben.

+0

Danke. Perfekt gesetzt –

+1

Diese Antwort ist ein wenig über sich selbst sicher. Es gibt berechtigte Gründe dafür, dass ein Web-Mitarbeiter den Ajax-Aufruf durchführt und verwaltet. Wenn Ihr Aufruf beispielsweise 20 MB JSON zurückgibt, ist es effizienter, diesen JSON im Web Worker zu analysieren und das analysierte Objekt an den UI-Thread zu übergeben. Auf diese Weise hängt die Benutzeroberfläche nicht während der Verarbeitung der sehr langen Zeichenfolge. –