2013-11-18 5 views
1

Янни показывает, как отправить (собственность передачи) один буфер для веб-работника: Using transferable objects from a Web WorkerОтправка нескольких буферов массивов веб-работнику Javascript? Ответ

Как бы я отправить несколько буферов (в массиве) на веб-работника (без копирования)?

ответ

1

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/

+0

Спасибо, но: (1): это не массив, это массив, завернутый в объекте с Свойство «buffers» (все, что задокументировано в MDN, это [arrayBuffer], а не {buffers: [arrayBuffer]}) - считая, что это работает, это отличная находка. (2) скрипт не работает .. оповещения и console.log не определены в веб-работниках. – Agamemnus

+0

Ключ является вторым аргументом postMessage, который берет массив передаваемых объектов, которые вы ищете. Здесь вы помещаете буферы, которые хотите перенести. Первый аргумент - это просто произвольный объект сообщения. – tantalor

+0

это не работает –