经常在写代码的时候碰到这样的场景:页面初始化时显示loading页,同时启动多个ajax并发请求获取数据,当每个ajax请求返回时结束loading。

举个例子,一个下订单的页面,要查询常用地址信息、商品信息、地市信息…而这些请求都是异步的,希望等到所有数据加载完成后再允许用户操作。
要实现这个场景容易碰到的一个问题就是多并发怎么控制?下面是一些解决方法和思路:
并行改为串行
如果业务逻辑本身是串行的,但是提供的请求方式又是异步的,可以考虑此方法。
但本场景显然不是这种情况,这样做大大降低了页面性能,延长了加载速度。
回调
只适合并发数少的情况,多层嵌套回调会让代码的可读性大大降低
function async1(){
//do sth...
}
function async2(){
//do sth...
async1();
}
async2();
ajax改为同步
如在jquery中将async参数设置为false
$.ajax({
url:"/jquery/test1.txt",
async:false
});
设置结束标识
简单一点的可以设置计数器,每完成一个异步函数加1,或者设置一个数组,每执行完一个异步函数更新数组。
回调计数
var cnt = 0;
function async1(){
//do sth...
callback();
}
function async2(){
//do sth...
callback();
}
function callback(){
cnt++;
if(2==cnt) console.log('都已执行完毕');
}
循环阻塞
var cnt = 0;
function async1(){
//do sth...
cnt++;
}
function async2(){
//do sth...
cnt++;
}
while(2>cnt){}
循环非阻塞
不建议过多使用,以免影响性能
var cnt = 0;
function async1(){
//do sth...
cnt++;
}
function async2(){
//do sth...
cnt++;
}
var interval = setInterval(function(){
if(2===cnt){
console.log('已执行完成');
clearInterval(interval)
}
}
第三方框架实现
jquery
目前我在项目中采用的方式
var d1 = $.Deferred();
var d2 = $.Deferred();
function async1(){
d1.resolve( "Fish" );
}
function async2(){
d2.resolve( "Pizza" );
}
$.when( d1, d2 ).done(function ( v1, v2 ) {
console.log( v1 + v2 + '已完成');
});
以上内容是小编给大家介绍的关于JavaScript多并发问题如何处理的相关知识,希望对大家有所帮助。
相关推荐:
SEO武汉:如何提升武汉地区网站的搜索引擎排名,景区网站建设费用
在线AI写文:开启高效创作新时代
SEO热词:提升网站排名的关键秘诀,一句话营销推广怎么写好
SEO模板:提升网站排名,助你快速抢占搜索引擎流量高地,选择seo职业缺点
SEO查:如何通过精准优化让网站流量飞速增长,吉林推广营销怎么样
《SEO教材:打造网站流量的核心利器,教你轻松SEO优化技巧》,咖啡网站建设总结文案
ChatGPT最新版本更新内容:智能对话体验再升级,更多功能与应用,ai证伪
ChatGPT服务器坏了?了解背后的技术与应对策略,AI模块代表
SEO做网站点击:提升网站流量的关键策略,国内ai写作论文
AI撰写工具的无限可能,让内容创作更高效、更精彩!
今时CMS:引领数字化转型的智慧之选,河南seo优化网站联系方式
AI缩写在线:让人工智能助力你行业前沿技术,ai uhrehara
ChatGPT页面打不开怎么办?这些解决方法让你轻松访问AI助手!,分散ai
GoogleGTP-智能时代的革命性突破,人工智能的新纪元,ai可以降论文ai率吗
怎么用AI润色文章,让你的文稿瞬间高大上
SEO妍:搜索引擎优化的艺术,轻松打造网络营销新未来,辽宁网站建设贵不贵
seo网站页面优化包括什么,seo页面优化技术 ,no ai写作
SEO站群:打造强大网络营销引擎,助力企业快速提升排名与流量,seo网站排名案例
SEO通过-如何通过SEO优化让你的业务在搜索引擎中脱颖而出,保定网站建设推广专家
摘要AI生成:高效工作的新时代利器
seo需要什么人员,seo需要什么技能 ,画大学ai
Chatttst:开启智能沟通新时代的无限可能,上海联通ai
为什么要seo排名,为什么要做seo推广 ,AI写作开启创意新世界
AI写作技巧,让创作事半功倍!
SEO动态:2025年SEO趋势与优化技巧解析,十堰外贸网站推广费用
SEO获客的秘诀:如何通过搜索引擎优化提升客户获取能力,厦门seo搜索优化排名
用AI写文,开启创作新时代
seo黑帽是什么,列举几种seo黑帽行为 ,穿老款的ai丢人吗
360AI写作怎样?助力创作的新风尚,ai到访
seo逻辑是什么,seo思路 ,语音主播怎么ai写作业
SEO怎么优化比较好?全面提升网站排名的实用技巧,高级ai玩家
什么是seo快排,seo快排方案 ,ai剪图形
优化综合:引领高效发展的智慧之道,电影营销的推广方式
ChatGPT网页版为什么不能用了?解析原因与解决办法,女人莫名其妙想ai
为什么seo这么麻烦,seo是什么意思 为什么要做seo ,dota1ai地图命令选ai
什么是seo寄生虫,寄生虫seo原理 ,AI 疫
SEO前的准备工作:如何让网站为搜索引擎优化做好充分准备,SEO_网站排名优化_网络推广
用AI创作的文章算原创吗?深度背后的逻辑与意义
SEO工装裤-打造时尚与实用兼备的工作利器,ai画中国爸爸辅导孩子写作业
为什么做抖音seo,为什么做抖音推广 ,描边ai虚线
SEO有话:如何用精准优化助力企业在线增长,食品微信营销推广
SEO怎么做才能提升网站流量与排名?这篇文章给你全攻略,铁岭定制网站推广公司电话
SEO优化10种策略:提升网站排名的有效方法,帅气ai男头白底
wordpress seo是什么,wordpress建站seo好做吗 ,学习图文ai
AI网站开发与代码创新:引领未来数字化变革的关键,ai ay规则
seo网站是什么东西,seo网站是什么东西啊 ,ai锯齿消失
SEO调整,助力网站流量爆发式增长!,江都seo优化排名
SEO优化基础:让你的网站脱颖而出的秘密武器,模仿猫ai
如何利用AI生成高质量文章,提升写作效率与创意?
ChatGPT怎么打开不了?全方位解决方案!,大庆ai