首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >多线程javascript

多线程javascript
EN

Stack Overflow用户
提问于 2015-08-14 22:39:48
回答 1查看 45关注 0票数 0

我知道很多人询问javascript中的多线程,但没有一个答案允许我做我想做的事情。

我想在网页中绘制不同的图表。然而,最后一个图需要很长的计算时间来绘制。我正在使用多维矩阵与map函数相结合,因此我认为没有可能优化这部分代码。

我想要做的是在第一个图形的计算完成后显示页面,并仅在最后一个图形的计算完成时显示最后一个图形。我的目标是避免仅仅因为最后一张图而冻结窗口。

示例:显示除最后一个以外的所有图形,允许用户滚动窗口以查看不同的图形,在计算期间显示加载消息而不是最后一个,并在计算完成时显示它。

我试着使用生成器和yield,但它不起作用...

下面是我的代码:

代码语言:javascript
运行
复制
function update() {
Promise.coroutine(function* () {
    // plot the first graphs
    plotThemAll(newC,newPV,newEL,newF,newModel,L);
    plotHydrogenProduction(newC,newPV,newEL,newF,newModel);

    //plot the last graph
    var plot = yield generateDataCF();

})().catch(function(errs) {
  //handle errors on any events
})
}

谢谢你的帮助。

EN

Stack Overflow用户

发布于 2015-08-14 22:44:56

浏览器javascript仍然只在单线程上运行-没有多线程,简单明了。然而,它实际上并不会造成太大的伤害-你可以做的是对你的CPU密集型工作进行分区,并使用例如setTimeout来分割这些分区。这样,后台计算将只占用合理的CPU块,并且站点将保持响应。

如果你在使用promises,这就更容易了--你只需要偶尔让步。但是你仍然需要理解必须让步--没有先发制人的多任务处理。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32012705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档