jquery进度条_jQuery进度栏

jquery进度条

Introduction

介绍

A frequently asked question goes something like this:  "I am running a long process in the background and I want to alert my client when the process finishes.  How can I send a message to the browser?"  Unfortunately, the short answer is "You can't." This is a restriction of the HTTP client / server protocol. The only time the server can send information to the client is in response to a request.  So it follows that we need a way for the client to request a progress report and a way for the server to send the progress report.  This article sets up the two parts of the application and builds them step-by-step so you can see exactly how this can be done.  We use jQuery and AJAX in a way that allows the client script to call the server-side script and to get back an indicator of progress.

一个经常被问到的问题是这样的:“我在后台运行一个很长的进程,我想在进程结束时提醒我的客户端。如何向浏览器发送消息?” 不幸的是,简短的答案是“你不能。” 这是HTTP客户端/服务器协议的限制。 服务器只能向客户端发送信息的时间是响应请求。 因此,我们需要一种方法,让客户端请求进度报告,并让服务器发送进度报告。 本文设置了应用程序的两个部分,并逐步构建了它们,因此您可以确切地了解如何完成此工作。 我们使用jQuery和AJAX的方式允许客户端脚本调用服务器端脚本并获取进度指示器。

The Visual Effect in the Browser

浏览器中的视觉效果

When we first load the client web page, we will have an area reserved for the progress bar.  As progress occurs (as indicated by the signal from the server) our progress bar will become visible and move across from left to right until the process is completed.  At the end, it will say "All Done" then it will fade from view and collapse out of the web page.  Here are screen-capture examples of the visual effects.  We used very bright colors for this example; your choice of size and color would be made with your design goals in mind.  These are settable via CSS.

首次加载客户端网页时,将为进度栏保留一个区域。 随着进度的发生(如服务器发出的信号所示),我们的进度条将变为可见,并从左向右移动直到该过程完成。 最后,它会说“ All Done”(全部完成),然后它会从视图中淡出并折叠出网页。 这是视觉效果的屏幕截图示例。 在此示例中,我们使用了非常鲜艳的颜色; 您选择尺寸和颜色时会考虑您的设计目标。 这些可以通过CSS设置。

Before the process starts:

在过程开始之前:

jquery-progress-bar-1.png
After the progress bar appears:

在进度条出现后:

jquery-progress-bar-2.png
As the progress bar continues to show greater and greater progress:

<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP.NET jQuery进度条上传是一种常见的网页上传文件功能。通过前端jQuery插件和后端ASP.NET技术,实现了文件上传过程中的进度条展示,提高了用户体验和操作效率。具体实现方式如下: 1. 前端实现 使用jQuery的ajaxForm插件,结合jQueryUI的progressbar插件,进行文件上传进度条的展示。在HTML页面上添加上传表单和进度条,通过ajaxForm设置表单提交事件,实现文件上传过程中进度条的实时更新。代码如下: ``` <form id="uploadForm" enctype="multipart/form-data" method="post" action="UploadFile.ashx"> <input type="file" name="fileUpload" /> <input type="submit" value="上传" /> </form> <div id="progressBar"></div> ``` ``` $("#uploadForm").ajaxForm({ beforeSend: function() { $("#progressBar").progressbar({ value: 0 }); }, uploadProgress: function(event, position, total, percentComplete) { $("#progressBar").progressbar({ value: percentComplete }); }, success: function() { $("#progressBar").progressbar({ value: 100 }); alert("上传成功!"); }, error: function() { alert("上传失败!"); } }); ``` 2. 后端实现 在ASP.NET中,通过HttpHandler实现文件上传处理,从request对象中获取上传的文件信息,根据文件大小和上传进度,实时更新进度条的值。代码如下: ``` <%@ WebHandler Language="C#" Class="UploadFile" %> using System; using System.Web; public class UploadFile : IHttpHandler { public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/plain"; HttpPostedFile file = context.Request.Files["fileUpload"]; int fileSize = file.ContentLength; int bytesRead = 0; byte[] buffer = new byte[8192]; using (System.IO.Stream stream = file.InputStream) using (System.IO.BinaryReader reader = new System.IO.BinaryReader(stream)) using (System.IO.MemoryStream ms = new System.IO.MemoryStream()) { double percentComplete = 0; int totalRead = 0; while ((bytesRead = reader.Read(buffer, 0, buffer.Length)) > 0) { ms.Write(buffer, 0, bytesRead); totalRead += bytesRead; percentComplete = (double)totalRead / fileSize * 100; context.Response.Write(percentComplete.ToString()); } } } public bool IsReusable { get { return false; } } } ``` 综上,ASP.NET jQuery进度条上传,通过前后端技术的组合应用,在网页上传过程中有效展示文件上传进度和结果,提升了用户的体验感和操作效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值