扫码关注官方订阅号
想在网页数据加载完成之前显示loading,待所有数据加载完成清除loading,一个页面有多个ajax异步请求,怎么判断全部请求都完成了?
闭关修行中......
想到的有2种方法一种是使用jquery自带的when
$.when($.ajax(), $.ajax()).then(function(){ // 结束 })
还有一种是设置全局变量
var ajaxCount = 10 ; var ajaxFinished = function(){ if(ajaxCount > 0){// do nothing} else{ // 请求全部完成,做该做的事情 } } $.ajax(xxx1).then(function(){ ajaxCount --; ajaxFinished(); }); $.ajax(xxx2).then(function(){ ajaxCount --; ajaxFinished(); }) // ...
你都异步了,为啥还用loading,前后矛盾啊。
jquery支持promise啊
$.when($.ajax("..."), $.ajax("...")) .done(function(){ alert("Success"); }) .fail(function(){ alert("Error"); });
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 + '已完成'); });
浅谈js中多并发的一些处理方法
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
想到的有2种方法
一种是使用jquery自带的when
还有一种是设置全局变量
你都异步了,为啥还用loading,前后矛盾啊。
jquery支持promise啊
$.when($.ajax("..."), $.ajax("..."))
.done(function(){ alert("Success"); })
.fail(function(){ alert("Error"); });
浅谈js中多并发的一些处理方法