ajax数据加载动画及上传进度条

1,简短说明

数据加载动画及上传进度条展示

2,实例

html

<style>
#wai{
	width:300px;
	height:30px;
	border:1px solid #5FB878;
	border-radius:20px;
}
#nei{
	width:0px;
	height:30px;
	line-height:30px;
	background:#5FB878;
	text-align:center;
	border-radius:20px;
}
</style>
<div id="wai">
  <div id="nei"><span id="precent" style="color:white;"></span></div>
</div>
<script>

var form = document.getElementById("form-upload");
var formData = new FormData(form);
formData.append("city",$("#city-list option:selected").val());
	
$.ajax({
	     url:'excelImport',
	     type:'post',
	     async:true,
	     data:formData,
	     contentType:false, // 文件上传
	     processData:false, // 文件上传
	     // 数据加载动画--start
	     beforeSend: function () {
	         $("body").append('<div id="pload" style="position:fixed;top:45%;z-index:1200;background:url(images/loading2.gif) top center no-repeat;width:1900px;height:768px;margin:auto auto;"></div>');
	     },
	     complete: function () {
	         $("#pload").remove();
	     },
	     // 数据加载动画--end
	     xhr:function(){
	       	 var xhr = $.ajaxSettings.xhr();
	       	 if(xhr.upload){
	       		 xhr.upload.addEventListener("progress",function(evt){
	       			 var loaded = evt.loaded; // 已加载进度
	      				 var tot = evt.total; // 总进度
	      				 var per = Math.floor(100*loaded/tot);
	      				 if(100==per){
	      					 document.getElementById('nei').style.width='99%';
	       		         document.getElementById('precent').innerHTML='99%';
	      				 }else{
	       				 document.getElementById('nei').style.width=per+'%';
	       		         document.getElementById('precent').innerHTML=Math.floor(per)+'%';
	      				 }
	       		 },false);
	       		 return xhr;
	       	 }
	     },
	     dataType:'json',
	     success:function(dataObj){
	        if(200==dataObj.status){
	        	layer.msg("文件上传成功!!");
	        }else{
	        	layer.msg(dataObj.msg);
	        }
	     },
	     error:function(e){
	    	layer.msg("上传异常!!");
	     }   
});
</script>

3,说明

这里的上传进度只是文件上传到后台的进度,后台对上传文件做其他处理时,对应进度跟踪需要考虑其他思路

4,参考链接

https://www.cnblogs.com/yz-blog/p/7843468.html
https://www.cnblogs.com/lydiawork/p/8488893.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值