Können Web Worker auf ein Canvas-Objekt zugreifen?Web Worker und Canvas
Antwort
Kleines Update, da die Frage ist jetzt mehr als ein halbes Jahr alt:
In Chrome/Chromium 6 Sie jetzt eine Leinwand schicken Imagedata zu einem Web-Worker-Objekt, lassen Sie die Web-Arbeiter Änderungen an den Objekt und dann schreiben Sie es zurück in die Leinwand mit putImageData (..).
Update::
Die neueste Entwicklung Schnappschüsse von
Googles Chromabrush tut es auf diese Weise, die Quelle-Code finden Sie hier Opera (10.70) und Firefox (4.0b1) unterstützen auch das Übergeben von ImageDa Objekte zu einem Web-Arbeiter.
-Update 2017:
Tatsächliche Links von Github (leichter benötigten Dateien aus Chromabrush
zu finden):
Nr
Die postmessage spec wurde ein paar Monate aktualisiert zurück, damit Sie Imagedata-Objekte, aber noch niemand schreiben hat, dass das Verhalten umgesetzt (wir alles bekommen). Das Problem mit Canvas selbst ist, dass es ein DOM-Element ist und daher in einem Worker nicht funktioniert (es gibt kein DOM).
Dies wurde kürzlich auf den Mailinglisten von whatwg oder web-apps angesprochen. Ich vermute, dass wir uns überlegen werden, ob es möglich ist, in Workern eine CanvasRenderingContext2D-ähnliche API bereitzustellen.
Ich hatte den Eindruck, die WebWorker würde keine Interaktion mit einem DOM erlauben, da dies zu möglichen Problemen führen würde wenn mehrere Webworker Änderungen vornehmen. –
Das Problem ist, dass das DOM kein Concurrency-Konzept hat, daher erlauben Workers keinen gemeinsamen Status. Die einzige Möglichkeit, mit einem Worker zu kommunizieren, ist mit postMessage, und das führt einen Klon nach dem "internal structured cloning algorithm" durch, der grundsätzlich als JSON gedacht ist, aber mit zusätzlicher Unterstützung für einige Schlüsseltypen (File, FileList, ImageData, Blob, Date und RegExp) – olliej
Diese Antwort ist veraltet. Die andere Antwort ist jetzt besser. – Baxissimo
- 1. Canvas-API und Web-Worker
- 2. Web Worker und Skalierung Bilder
- 3. Was ist Procfile? und Web und Worker
- 4. web worker vs provents
- 5. importScripts (Web Worker)
- 6. Debugging und Profiling von Web Worker
- 7. Caesium TaskProcessor vs Web Worker
- 8. Web Worker Einstellungen für Chrom
- 9. Web Worker 20x schlechtere Leistung
- 10. Beschränken Web Worker CPU-Auslastung?
- 11. Zugriff dom von Web Worker
- 12. Angular2 Web Worker mit ES5
- 13. Javascript Web Worker File Upload
- 14. Ember Concurrency vs Web Worker
- 15. Was ist der Unterschied zwischen "Web Worker" und "Background Worker" auf App Harbor
- 16. Wie man Web Worker mit TypeScript und webpack erstellt
- 17. Javascript Web Worker - Daten an Seite thread
- 18. Web Worker arbeitet nicht mit onclick
- 19. Meinung über synchrone Anfragen in Web-Worker
- 20. Geben eines Javascript-Objekt zu Web Worker
- 21. XML in einem Web Worker analysieren
- 22. Führe Web-Worker aus verschiedenen Quellen aus
- 23. Mit übertragbar Objekte von einem Web-Worker
- 24. JavaScript Web Worker - Schließen() vs beenden()
- 25. Synchron auf Nachricht in Web-Worker warten
- 26. Übergabe der jQuery-Referenz über Web Worker
- 27. Azure web/worker role lesen Konfigurationseinstellungen
- 28. Load Nodejs Module in einen Web Worker
- 29. Convert SVG in PNG in Web Worker
- 30. Web Worker - erstellen sie tatsächliche Threads?
Lass mich raten, IE ist anders? – Lothar