Ответ Янни показывает, как отправить (передать право собственности) один буфер веб-воркеру: передаваемые объекты из Web Worker
Как мне отправить несколько буферов (в массиве) веб-воркеру (без копирования)?
Ответ Янни показывает, как отправить (передать право собственности) один буфер веб-воркеру: передаваемые объекты из Web Worker
Как мне отправить несколько буферов (в массиве) веб-воркеру (без копирования)?
Worker#postMessage
принимает массив передаваемых объектов,
var worker = new Worker("...");
var buffers = [new ArrayBuffer, new ArrayBuffer, new ArrayBuffer];
var message = {buffers: buffers};
worker.postMessage(message, buffers);
Вот пример скрипта, http://jsfiddle.net/g247v/.
На этот вопрос был дан ответ в другом месте, но сначала Google привел меня сюда, прежде чем я в конце концов нашел ответ здесь.
Вы можете передать несколько буферов веб-воркеру без выполнения копирования, используя Переносимые объекты:
Рабочий случай, первый аргумент — это данные, а второй — список элементов, которые должны быть переданы. Кстати, первый аргумент не обязательно должен быть ArrayBuffer. Например, это может быть объект JSON:
worker.postMessage(
{data: int8View, moreData: anotherBuffer},
[int8View.buffer, anotherBuffer]
);