簡體   English   中英

javascript 網絡工作者發布消息

[英]javascript web worker posting message

我正在對我的腳本進行大量處理,因此為了不阻止 UI 並避免瀏覽器處理上限(Chrome 上為 12.5),我嘗試了網絡工作者

問題是對象太大並且包含數組,因此發布消息不會通過拋出“無法在'Worker'上執行'postMessage':無法克隆對象”來傳輸它

所以我考慮將它字符串化,對象沒有完全傳輸,因為它包含數組,而數組字符串化為“[]”

所以我考慮將數組轉換為字符串/對象,以便能夠將它們傳輸然后再傳輸回來,但是由於對象很大,我的堆棧內存不足(即使使用第三方插件)

那么在這種情況下有什么我想念的東西會有所幫助嗎?

  • 在不阻塞用戶界面的情況下處理耗時功能的任何更好的方法,並允許我報告進度; 會解決這個問題
  • 以任何方式將對象及其所有對象和數組傳輸到網絡工作者; 會解決這個問題

問題的調試圖片

未字符串化的子對象

如果您執行以下操作,您是否正確地重新創建了對象?

在您的主線程上:

var worker = new Worker('myworkerfile.js')
worker.postMessage(JSON.stringify(myclusters))

在工作線程上:

onmessage =  function(e) {
  var myclusters = JSON.parse(e.data);
  console.log(myclusters)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM