2016-11-11 4 views
-2

У меня есть массив на объектах, сетках, созданных с помощью Three.js, которые я хочу выполнять некоторые операции в веб-работнике. Итак, вопросы в том, как я могу отправить их работнику?Публикация веб-работника с помощью javascript с помощью javascript с помощью javascript

Из того, что я понимаю, есть нечто, называемое переносимыми объектами, которое использует что-то под названием ArrayBuffer, но я не могу найти никакой информации о том, как преобразовать мой массив объектов в это. Или это возможно не возможно?

+0

Читать MDN Статьи по темы, они довольно ясны. Вы, кажется, не знаете, что такое передаваемый и ArrayBuffer. MDN очистит вашу неопределенность. –

ответ

1

Если ваш объект уже находится в двоичном формате буфера, нет никакой выгоды от производительности при преобразовании его в этот формат и обратно. По некоторым причинам, это то, чего пользователи Web Socket не понимают, - все такие вопросы задают все время. Мой ответ всегда один и тот же - если ваша проблема является производительность, ничего не конвертировать:

Просто использовать обычный старый добрый:

worker.postMessage (туАггау);

Если вы по какой-то причине кажется, что я неправильно об исполнении, не стесняйтесь факт проверить свои претензии, используя интерактивный фрагмент кода в этом ответе:

+0

Хорошо спасибо! Я преобразую свои сетки в структуру JSON, которая регенерирует объекты сеток в рабочем. – arpo

+0

@arpo Не конвертируйте его. Пусть браузер обработает его, это будет нормально. Просто поместите свой массив прямо в 'postMessage' и в рабочем, вы получите его. –

+0

Это было первое, что я пробовал. Это дает мне эту ошибку: «Uncaught DOMException: не удалось выполнить« postMessage »в« Worker »: объект не может быть клонирован». – arpo

Смежные вопросы