假设我要处理大量数据。为了这个例子,假设数据不能在服务器端处理;它必须在客户端处理。我们还要说整个数据流程如下所示:
for element in data do:
//do some work with "element"
end
同样,为了这个例子,我们假设data
包含100.000个元素。
调用process函数将冻结整个DOM,直到循环到达它结束。我的问题是:有没有办法以非阻塞的方式进行这种处理?是某种异步/等待,使用某种类型的data
机制处理yield
的块,还是其他任何东西?
答案 0 :(得分:1)
每次都可以循环给定数量的元素,处理下一个堆栈中的下一批。要完成此任务,您必须使用setTimeout
。这是相当基本的,但适用于任何浏览器..
也许使用reduce或者其他东西......把剩下的东西发送到下一个堆栈等等......
如果您不能依赖网络工作者,这只能被认为是正确的答案,因为这是针对他们所指定的内容。