2016-11-11 55 views
-2

我有一個關於對象的數組,使用Three.js創建的網格,我想在web worker中執行一些操作。所以問題是我如何將它們發佈給工作人員?使用javascript發佈Three.js網格到web worker

從我所瞭解的有一些稱爲可轉移對象的東西,它使用了一種叫做ArrayBuffer的東西,但我找不到任何有關如何將我的對象數組轉換爲的信息。或者這可能不可能?

+0

閱讀MDN的文章話題,他們很清楚。你似乎不確定哪些是可移植的和ArrayBuffer。 MDN將清除你的不確定性。 –

回答

1

除非您的對象已經是二進制緩衝區格式,否則將其轉換爲該格式並返回時沒有性能優勢。出於某種原因,這是大多數Web Socket用戶無法掌握的東西 - 像這樣的問題一直被問到。我的回答總是一樣的 - 如果你關心的是性能,請不要轉換任何東西:

只需使用普通的好醇':

worker.postMessage( myArray的);

如果出於某種原因想我錯了有關性能,隨意在這個答案使用交互式片斷事實檢查我的要求:

+0

好的,謝謝!我會將我的網格轉換爲JSON結構,以重新生成工作中的網格對象。 – arpo

+0

@arpo不要轉換它。讓瀏覽器處理它,它會沒事的。只需將你的數組直接放在'postMessage'中,然後在worker中,你就會收到它。 –

+0

這是我嘗試的第一件事。它給了我這個錯誤:「未捕獲的DOMException:未能在'Worker'上執行'postMessage':一個對象無法被克隆。」 – arpo