1 [HttpPost] 2 public JsonResult ProgresBar02() 3 { 4 var bars = new List<MoBar>(); { 7 bars = _cache.Get<List<MoBar>>(cacheKey); 8 } 9 catch (Exception ex) 10 { 11 } 12 return Json(bars); 13 }
进度接口只需要获取cache中的进度信息就行了,注:这里是测试用例,具体使用场景请各位自行增加其他逻辑代码;下面就来看下效果截图:
Task并行处理+ajax提交+上传进度+一组图片上传这一小节,将会使用Task来处理上传的文件,通过上一小节截图能够看出,如果你上传多个文件,那么都是按照次序一个一个读取文件流来生成上传文件到服务器,这里改良一下利用Task的特点,就能实现同时读取不同文件流了,先来看下html代码和js代码:
id=method=enctype=> name==multiple /> 4 <br /> id==>task任务处理ajax上传进度效果上传</button> 6 <br /> id=></span> 8 </form>
由于和示例3的js代码无差别这里我直接贴出代码:
).on(, function () { interBar; ); ); ); data = new FormData(form); 9 10 $.ajax({ , , 13 data: data, 14 15 contentType: false, 16 processData: false, 17 success: function (data) { 18 if (data) { 19 msg.html(data.msg); (interBar) { clearInterval(interBar); } 22 } 23 }, 24 error: function () { ); 26 if (interBar) { clearInterval(interBar); } 27 } 28 }); interBar = setInterval(function () { , function (data) { (data) { 36 var isClearVal = true; 37 var strArr = []; 38 $.each(data, function (i, item) { + item.fileName + + item.percentBar + ); 40 if (item.status != 2) { isClearVal = false; } 41 }); 42 msg.html(strArr.join('')); 43 if (isClearVal) { 44 if (interBar) { clearInterval(interBar); } 45 } 46 } 47 }); 48 }, 200); 49 });