我们正在用ReactJS开发一个解决方案,基于excel计算某些值,并将它们显示在具有行和列的网格单元格中。每个单元格都有一定的公式,该公式可以依赖于其他单元格来计算其值。
E.g. Cell A = Cell D + Cell Q,
Cell D = Cell P + Cell K
以此类推。
随着单元格数量的增加,网格的加载时间呈指数增长。我正在尝试找到一些方法,可以通过并行运行来减少加载时间。例如:首先,x组单元可以在一个线程上运行,其他x组可以在其他线程上运行,然后我可以将它们绑定在一起。
或者如果有其他方法我可以做到这一点。
发布于 2019-10-29 15:41:58
在浏览器中运行这样的算法会大大限制你的选择。我最初的猜测是在web worker池中运行任务,以避免阻塞主线程,并且不冻结UI。
对于技术实现,我推荐阅读本教程: 2018年的An Introduction to Using Web Workers in React。
基本示例:
worker.js
export default () => {
self.addEventListener('message', e => {
if (!e) return;
let result;
// Run your algorithm
postMessage(result);
})
}
React组件
import worker from './worker.js';
componentDidMount = () => {
this.worker = new WebWorker(worker);
};
onClickAction = () => {
this.worker.postMessage('Perform actions');
this.worker.addEventListener('message', event => {
this.setState({
results: event.data.results
})
});
}
}
https://stackoverflow.com/questions/58610084
复制相似问题