Como impedir que os Trabalhadores da Web em HTML5 bloqueiem, respondendo corretamente às mensagens dos pais

Estou usando trabalhadores da Web para fazer algum trabalho intensivo da CPU, mas tenho o requisito de que o trabalhador responda às mensagens do script pai enquanto o trabalhador ainda está processando.

O trabalhador, no entanto, não responderá às mensagens enquanto estiver bloqueado em um loop de processamento, e eu não encontrei uma maneira de dizer pesquisar a fila de mensagens. Portanto, parece que a única solução é interromper o processamento em um intervalo para permitir a manutenção de qualquer mensagem na fila.

As opções óbvias são usar um timer (digamos, com setInterval), mas eu li que o atraso mínimo entre disparos é bastante longo (http://ajaxian.com/archives/settimeout-delay), o que é lamentável, pois atrasa muito o processamento.

O que os outros pensam sobre isso? Vou tentar mandar o trabalhador despacharonmessage para si mesmo no final de cadaonmessage, implementando efetivamente uma etapa do loop de processamento por evento recebido dele, mas só queria ver se alguém tinha alguma idéia sobre isso.

Obrigado,

questionAnswers(3)

yourAnswerToTheQuestion