如何处理Javascript多并发问题

如何处理Javascript多并发问题
编写代码时,常常会遇到这样的场景:在初始化页面时显示加载页面,并启动多个Ajax并发请求来获取数据。当每个Ajax请求返回时,结束加载。
例如,一个订单页面,用于查询公共地址信息、商品信息、城市信息……这些请求是异步的,我们希望等到所有数据加载完成并允许用户操作。
一个很容易满足的问题是如何控制多个并发:

并行串行

如果业务逻辑本身是串行的,则请求模式是异步的,可以考虑此方法。

但这种情况显然不是这样的,这大大降低了页面的性能并延长了加载速度。

回调

只有较少的情况下的并发,多层嵌套回调将大大降低代码的可读性
功能async1(){
意为做某事。
}
功能async2(){
意为做某事。
async1();
}
async2();

Ajax被更改为同步。

例如,在jQuery,async参数设置为false
$ ajax({
网址: / / jQuery test1 .txt
异步:假
});
设置结束标志

可以设置一个简单的点,每完成一个异步函数加1,或者一个数组,执行每个异步函数来更新数组。

回调计数
var = 0;
功能async1(){
意为做某事。
回调();
}
功能async2(){
意为做某事。
回调();
}
函数回调(){
碳纳米管+;
如果(2 = = CNT)console.log(已完成);
}

循环障碍
var = 0;
功能async1(){
意为做某事。
碳纳米管+;
}
功能async2(){
意为做某事。
碳纳米管+;
}
而(2)CNT { }

循环阻塞

建议不要使用太多,以免影响性能。
var = 0;
功能async1(){
意为做某事。
碳纳米管+;
}
功能async2(){
意为做某事。
碳纳米管+;
}
VaR区间= setInterval(function()){
如果(2 = = CNT){
console.log('completed执行);
ClearInterval(间隔)
}
}

第三方框架的实施

滑动分页

我目前使用这个项目的方式
var =;
var =递延();
功能async1(){
d1.resolve(鱼);
}
功能async2(){
d2.resolve(比萨);
}
$(D1,D2)。完成(函数(V1,V2){)
console.log(V1 +V2已完成);
});
以上内容是关于如何处理Javascript多并发问题的一点编辑器,希望对您有所帮助。

tag:并发如何处理电脑软件Javascript

相关内容