博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net利用ajax和jquery-ui实现进度条
阅读量:5303 次
发布时间:2019-06-14

本文共 2316 字,大约阅读时间需要 7 分钟。

  前台用ajax不停进行查询,直到任务完成。进度条用的是jquery-ui。后台用一般处理程序处理相应,进度信息保存在HttpContext.Application中。

  代码作为简单示例,实际应用时应对资源释放、防止多线程混乱等做进一步控制。

  • 效果图:

  

  • 代码:

前台:

1  2  3  4     
5 6 7 8
9 43 44 45 46
47
48
49
50
51 52

后台:

1 // 2015年12月16日 09:53:11  2 // David Huang 3 // 进度条示例 4 namespace ProgressTest 5 { 6     using System; 7     using System.Threading; 8     using System.Web; 9 10     /// 11     /// Handler1 的摘要说明12     /// 13     public class Handler1 : IHttpHandler14     {15         // context16         private HttpContext context;17 18         public bool IsReusable19         {20             get21             {22                 return false;23             }24         }25 26         public void ProcessRequest(HttpContext context)27         {28             this.context = context;29             if (context.Request["RequestType"] == "AjaxRequest")30             {31                 if (context.Request["Method"] == "GetProgress")32                 {33                     context.Response.Clear();34                     context.Response.Write(this.GetProgress());35                     context.Response.End();36                 }37                 else38                 {39                     this.DoWork();40                 }41             }42         }43 44         /// 45         /// 开始工作46         /// 47         private void DoWork()48         {49             for (int i = 0; i < 100; i++)50             {51                 // 记录进度52                 // 实际应用中需要进一步控制(利用用户信息、cookies等),防止并发造成混乱53                 this.context.Application["progress"] = i + 1;54                 Random r = new Random();55                 Thread.Sleep(r.Next(10, 100));56             }57             // 完成后释放资源58             this.context.Application["progress"] = null;59         }60 61         /// 62         /// 查询进度63         /// 64         /// 
进度
65 private int GetProgress()66 {67 if (this.context.Application["progress"] != null)68 {69 return (int)this.context.Application["progress"];70 }71 else72 {73 return -1;74 }75 }76 }77 }

 

转载于:https://www.cnblogs.com/David-Huang/p/5050452.html

你可能感兴趣的文章
Hyper-V虚拟机上安装一个图形界面的Linux系统
查看>>
微信小程序之随笔
查看>>
每秒处理10万高并发订单的乐视集团支付系统架构分享
查看>>
Lua_02
查看>>
ios蓝牙详解
查看>>
安装MySQL5.7.18遇到的坑
查看>>
React Native在Android平台运行gif的解决方法转载
查看>>
Mybatis RowBounds 是逻辑分页
查看>>
hdu 3341(ac自动机+状态压缩)
查看>>
51单片机之蓝牙遥控小车_效果展示+单片机知识+完整蓝牙电车代码
查看>>
使用WNMP时报的错
查看>>
扩展Django内置的auth模块代码示例
查看>>
Sql Server中REPLACE函数的使用
查看>>
SqlServerl的行转列
查看>>
《信息安全系统设计基础》第三周问题总结
查看>>
nextInt()和nextLine()一起使用时的注意点
查看>>
java如何获取一个对象的大小【转】
查看>>
MobilePhone正则表达式
查看>>
2017年3月17日上午日志
查看>>
JavaScript跨域总结与解决办法
查看>>