我怎样才能以非阻塞的方式处理数字
how can i crunch numbers in a non-blocking way?
我有一个lineCollection模型,这些模型表示图中的线。每一行处理一个dataCollection并生成一次平均值。就一句话来说,它非常轻快。
在获取dataCollection之后,我有一个监听器来处理每一行的数据。
lineCollection.invoke('setData')
但是,这种方式会冻结浏览器。我的下一个方法是尝试设置一个超时,希望能停止阻塞ui:
lineCollection.each(function(model) {
setTimeout(model.setData, Math.round(Math.random() * 20));
});
这仍然冻结了整个过程。我如何告诉浏览器在后台处理数据?
编辑
在我的例子中,"压缩数据"是压缩约3600个长度数组的可变集,对每个切片求平均值,并格式化约3600个日期对象。
// x axis
var xs = _.map(times, this.formatTime);
// y axis
var values = _.map(allSamples, function(samples) {
return _.pluck(samples, 'value');
});
var avgs = _.map(_.zip.apply(_, values), _.avg);
var ys = _.compact(avgs);
// graph data
var data = { x: xs.slice(xs.length - ys.length), y: ys };
我肯定会研究工作线程。
相关文章:
- 在承诺链中处理早期回报的最佳方式
- 如何处理javascript中的循环引用,类似于Excel提供迭代限制的方式
- 如何启用Emmet'的选项卡键处理程序(HTML快捷方式)
- 在Javascript HTML5+Canvas中处理精灵鼠标点击的最佳方式
- 如何以 Angular2 方式处理 ajaxStart 和 ajaxStop 事件
- 我怎样才能以非阻塞的方式处理数字
- 如何制作一个JavaScript函数,处理多组输入,以同样的方式进行数学处理
- React是装载前处理空对象的最佳方式
- 如何使用javascript中的间隔以顺序方式处理websocket响应
- 为什么'这'与函数对象一起使用时会有不同的处理方式
- 处理多次单击事件的最佳方式
- 用 ES6 承诺以习惯方式处理先决条件
- Internet Explorer 11 根据开发人员工具是否打开而以不同的方式处理 jQuery
- 以 MVVM 方式处理 html5 视频标签的正确方法是什么?
- 使用 jQuery 延迟对象以串行方式处理 jQuery 集合/数组
- 如何以正确的方式处理Chrome X-XSS-Protection
- 如何以编程方式处理net::ERR_INSECURE_RESPONSE
- 以RESTful的方式处理模型关系
- PubSub.js的多个订阅,或者以不同的方式处理多个回调的等待
- 在每个块的handlebas#中以不同的方式处理列表的最后一个元素