Usando Web Workers para desenhar usando funções nativas de tela

É possível enviar umCanvasPixelArray obtido viagetImageData para um script de trabalho e deixe o script de trabalho manipular os pixels em seu encadeamento em segundo plano e, eventualmente, poste a matriz de pixels manipulada de volt

No entanto, estou usando funções nativas de desenho de tela, comodrawImage. OdrawImageo momento, as chamadas @ estão bloqueando o thread da interface do usuário. Isso causa um redesenho lento dos botões e um atraso perceptível ao clicar em um botão, apenas para citar algumas desvantagens. (Editar: uma pequena melhoria agora pode ser realizada comctx.imageSmoothingEnabled = false, pelo menos no WebKit com owebkit prefixo.)

Gostaria de mover o desenho do thread principal para um thread de segundo plano usando Web Workers. No entanto, parece que não consigo enviar a tela nem o contexto para o trabalhado

Eu encontrei este aviso no MDN:

ota: Como de costume, os threads de segundo plano - incluindo os trabalhadores - não podem manipular o DOM. Se as ações executadas pelo encadeamento em segundo plano precisarem resultar em alterações no DOM, eles deverão postar mensagens de volta aos criadores para fazer esse trabalh

Mas gostaria de deixar o DOM como está; Eu simplesmente quero desenhar coisas em um elemento de tela. Isso é possível ou os Trabalhadores da Web realmente só podem calcular e não desenhar?

(Ou talvez seja possível usar funções comodrawImage para manipular umCanvasPixelArray em vez de desenhar em uma tela?)

questionAnswers(4)

yourAnswerToTheQuestion