Я разрабатываю личный веб-сайт, чтобы объединить Three.js и ScrollMagic с OO Javascript. Когда пользователь прокручивает трехмерные объекты, они трансформируются. Все это работает хорошо, но есть небольшая проблема с производительностью. Чтобы улучшить это, я хочу переместить некоторые функции цикла / для, которые вычисляют позиции, в веб-воркер (всякий раз, когда я вызываю функцию цикла, прокрутка задерживается).
Проблема в том, что я пытаюсь передать массив (512) экземпляров класса (THREE.PointCloud) веб-работнику. Кажется, я не могу понять какие-либо полные свойства этих экземпляров в веб-воркере.
Во-первых, я просто попытался передать массив рабочему и получил эту ошибку «Uncaught DataCloneError: не удалось выполнить postMessage на« Worker »: объект не может быть клонирован».
Затем я понял, что не могу этого сделать, поэтому использовал JSON.stringify () и JSON.Parse (). Я мог получить длину массива. Однако мне не удалось получить свойства для каждого экземпляра.
Я думаю, мне нужно использовать ArrayBuffer? Но я понятия не имею, как преобразовать мой массив экземпляров в ArrayBuffer. Кто угодно? или есть более простой способ улучшить производительность?
Помощь будет очень признательна.
Спасибо.