优化递归

时间:2020-09-15 15:31:31

标签: javascript recursion

我有传入的类似树的数据,我需要将其转换为稍微不同的东西。 我创建了一个类方法:

normalizeMyStuff(data) {
  return data.map(item => {
     //do this..
     //do that..
     const children = item.children ? this.normalizeMyStuff(item.children) : undefined
     return {
       ...some properties,
       children,
     }
  })
}

但是,由于有大量数据,运行此方法时,它将冻结我的浏览器几秒钟。这不是我想提供的经验。 我该怎么做才能优化它?

1 个答案:

答案 0 :(得分:4)

一种选择是在收到响应时启动一个单独的worker thread:将有效负载发送给工作程序,在那里进行大量的计算密集型转换,然后让工作程序将结果发送回主页

工作人员在与原始页面不同的环境中工作,因此,即使工作人员运行一个非常昂贵的过程(如while(true);),原始页面仍将保持快速响应;在工作者运行时,仍然可以进行滚动和单击按钮。

相关问题