广告
返回顶部
首页 > 资讯 > 精选 >如何使用Ajax实现简单的带百分比进度条
  • 622
分享到

如何使用Ajax实现简单的带百分比进度条

2023-06-08 07:06:32 622人浏览 泡泡鱼
摘要

这篇文章主要介绍如何使用ajax实现简单的带百分比进度条,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!需求:当进行文件长传保存等操作时,能在页面显示一个带百分比的进度条,给用户一个好的交互体验实现步骤JSP页面添加t

这篇文章主要介绍如何使用ajax实现简单的带百分比进度条,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

需求:当进行文件长传保存等操作时,能在页面显示一个带百分比的进度条,给用户一个好的交互体验

实现步骤

JSP页面

添加table标签

<table id="load" width="700" border="0" align="center" bGColor="#FAFAFA" cellpadding="0" cellspacing="0" bordercolor="#000000" >   <tr>    <td><br><br>    <table width="100%" border="1" cellspacing="0" cellpadding="0" bordercolor="#287BCE" >      <tr bgcolor="#F7F7F6">       <td width="20%" height="100" valign="middle">        <table align='center' width='500'>         <tr>          <td colspan='2' align='center' id="progressPersent"><font size="2">          正在进行保存,用时较长,请稍后...          </font>          </td>         </tr>         <tr>          <td id='tdOne' height='25' width=1 bgcolor="blue">&nbsp;</td>          <td id='tdTwo' height='25' width=500 bgColor='#999999'>&nbsp;</td>         </tr>        </table>       </td>      </tr>    </table>    </td>   </tr>  </table> 

  这个table标签要隐藏,进度条执行的时候再显示。id为tdOne和tdTwo分别为进度条的蓝色和灰色区域。

添加js代码

  var xmlHttp;  //创建ajax引擎  function createXMLHttpRequest() {   if (window.XMLHttpRequest) {     xmlHttp = new XMLHttpRequest();    } else if (window.ActiveXObject) {     try {        xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");     } catch (e1) {        try {         xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");        } catch (e2) {        }     }    }  }  function loading() {    createXMLHttpRequest();    clearLoad();    var url = "elecCommonMsgAction_progressBar.do";    xmlHttp.open("GET", url, true);    xmlHttp.onreadystatechange = createCallback;    xmlHttp.send(null);  }  function createCallback() {    if (xmlHttp.readyState == 4) {      if (xmlHttp.status == 200) {        //每隔1秒钟执行一次percentServer()方法,直到当前访问结束        setTimeout("percentServer()", 1000);      }    }  }  function percentServer() {    createXMLHttpRequest();    var url = "elecCommonMsgAction_progressBar.do";    xmlHttp.open("GET", url, true);    xmlHttp.onreadystatechange = updateCallback;    xmlHttp.send(null);  }  function updateCallback() {    if (xmlHttp.readyState == 4) {      if (xmlHttp.status == 200) {        //获取XML数据中的percent存放的百分比的值        var percent_complete = xmlHttp.responseXML.getElementsByTagName("percent")[0].firstChild.data;        var tdOne = document.getElementById("tdOne");        var progressPersent = document.getElementById("progressPersent");        //改变蓝色区域的宽度        tdOne.width = percent_complete + "%";        //将百分比的数值显示到页面上        progressPersent.innerhtml = percent_complete + "%";        //如果计算获取的百分比的数值没有达到100,则继续调用方法,直到操作结束为止        if (percent_complete < 100) {          setTimeout("percentServer()", 1000);        }      }    }  }   function clearLoad() {    document.getElementById("load").style.display="";    document.getElementById("opperate1").style.display="none";    document.getElementById("opperate2").style.display="none";  }

  当点击保存时,执行loading()方法。

Action类

progressBar()方法

  public String progressBar() throws Exception{    //从session中获取操作方法中计算的百分比    Double percent = (Double) request.getSession().getAttribute("percent");    String res = "";    //此时说明操作的业务方法仍然继续在执行    if(percent!=null){      //计算的小数,四舍五入取整      int percentInt = (int) Math.rint(percent);       res = "<percent>" + percentInt + "</percent>";    }    //此时说明操作的业务方法已经执行完毕,session中的值已经被清空    else{      //存放百分比      res = "<percent>" + 100 + "</percent>";    }    //定义ajax的返回结果是XML的形式    PrintWriter out = response.getWriter();    response.setContentType("text/xml");    response.setHeader("Cache-Control", "no-cache");    //存放结果数据,例如:<response><percent>88</percent></response>    out.println("<response>");    out.println(res);    out.println("</response>");    out.close();    return null;  }

save()方法

  public String save(){    //模拟:循环保存150次,方便观察百分比变化    for(int i=1;i<=150;i++){      elecCommonMsgService.saveCommonMsg(elecCommonMsg);//保存数据      request.getSession().setAttribute("percent", (double)i/150*100);    }    //线程结束,清空session    request.getSession().removeAttribute("percent");    return "save";  }

  注意:可以在复杂的业务中将代码段分成点,一个点的进度是占百分之多少,然后存放到Session中,然后通过ajax调用服务从Session中获取值,返回进度并显示即可。

效果

如何使用Ajax实现简单的带百分比进度条

  输入数据,点击【保存】时: 

如何使用Ajax实现简单的带百分比进度条

总结

  带百分比的进度条,实际上是用ajax在保存中开启多个线程实现的:

一个线程,执行保存的操作:

    1.将百分比计算出来,放到session中;

    2.在线程结束的时候,将session清空。

另一个线程,从session中获取百分比的内容:

    1.使用ajax将结果返回并显示在页面上

什么是ajax

ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术,可以通过在后台与服务器进行少量数据交换,使网页实现异步更新。

以上是“如何使用Ajax实现简单的带百分比进度条”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: 如何使用Ajax实现简单的带百分比进度条

本文链接: https://www.lsjlt.com/news/252495.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用Ajax实现简单的带百分比进度条
    这篇文章主要介绍如何使用Ajax实现简单的带百分比进度条,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!需求:当进行文件长传保存等操作时,能在页面显示一个带百分比的进度条,给用户一个好的交互体验实现步骤JSP页面添加t...
    99+
    2023-06-08
  • Python实现带百分比的进度条
    大家在安装程序或下载文件时,通常都能看到进度条,提示你当前任务的进度。其实,在python中实现这个功能很简单,下面是具体代码。在实际应用中,你完全可以根据自己的要求进行修改!比如,示例中是通过time.s...
    99+
    2022-06-04
    百分比 进度条 Python
  • Android编程开发实现带进度条和百分比的多线程下载
    本文实例讲述了Android编程开发实现带进度条和百分比的多线程下载。分享给大家供大家参考,具体如下: 继上一篇《java多线程下载实例详解》之后,可以将它移植到我们的安卓中来...
    99+
    2022-06-06
    多线程下载 进度条 百分比 多线程 线程 Android
  • 如何利用css3实现进度条效果及动态添加百分比
    这篇文章主要介绍了如何利用css3实现进度条效果及动态添加百分比,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。代码:<!DOCTYPE html><...
    99+
    2023-06-08
  • Android如何实现简单的加载进度条
    这篇文章将为大家详细讲解有关Android如何实现简单的加载进度条,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Android是什么Android是一种基于Linux内核的自由及开放源代码的操作系统,主要...
    99+
    2023-06-14
  • 如何使用CSS3制作一个简单的进度条
    小编给大家分享一下如何使用CSS3制作一个简单的进度条,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!这里只是一个小demo,一个用CSS3写的进度条。如图所示:具体代码如下:<!DOCTYPE HTML&n...
    99+
    2023-06-08
  • 如何使用JS+CSS实现一个简单加载进度条的效果
    这篇文章主要讲解了“如何使用JS+CSS实现一个简单加载进度条的效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用JS+CSS实现一个简单加载进度条的效果”吧!一、前言我们经常在网页...
    99+
    2023-06-15
  • 如何使用CSS实现带箭头的流程进度条
    这篇文章将为大家详细讲解有关如何使用CSS实现带箭头的流程进度条,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。首先写出一个基本的样式。.cssNav li{   &...
    99+
    2023-06-08
  • Vue如何实现简单的时间轴与时间进度条
    目录前言1、封装时间尺度组件2、在vue页面使用时间尺度 3、组件init方法内 通过起止时间算出中间的所有时间尺度 总结前言 项目需要按天播放地图等值...
    99+
    2022-11-13
  • 如何使用Android实现文件解压带进度条功能
    这篇文章给大家分享的是有关如何使用Android实现文件解压带进度条功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。解压的工具类package com.example.videodemo.zip;&n...
    99+
    2023-05-30
    android
  • 如何使用Html5实现异步上传文件,支持跨域,带有上传进度条
    这篇文章主要为大家展示了“如何使用Html5实现异步上传文件,支持跨域,带有上传进度条”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用Html5实现异步上...
    99+
    2022-10-19
  • 如何使用CSS制作旋转进度条的实现步骤
    CSS是一种用于设计和布局网页的样式表语言,它提供了丰富的属性和功能。其中之一是可以使用CSS制作旋转进度条。这个特效可以用于展示页面加载或任务进度等情况。以下是具体的实现步骤和代码示例:第一步:HTML结构首先,我们需要在HTML中创建一...
    99+
    2023-10-21
    CSS 制作 旋转进度条
  • 如何实现一个简单的Ajax页面无刷新进行用户验证案例
    这篇文章给大家分享的是有关如何实现一个简单的Ajax页面无刷新进行用户验证案例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。效果如下图:实现主要过程:在UsersAction类中...
    99+
    2022-10-19
  • 如何使用CSS制作网页加载进度条的实现步骤
    如何使用CSS制作网页加载进度条的实现步骤在现代网页设计中,加载速度对于用户体验至关重要。为了提升用户体验,可以使用CSS制作网页加载进度条,让用户清晰地了解网页加载进度。本文将介绍使用CSS制作网页加载进度条的实现步骤,并提供具体的代码示...
    99+
    2023-10-26
    进度条 CSS 网页
  • 如何使用MySQL和Ruby实现一个简单的任务调度功能
    要使用MySQL和Ruby实现一个简单的任务调度功能,可以按照以下步骤操作:1. 安装并配置MySQL数据库:首先,确保你的系统中已...
    99+
    2023-10-20
    MySQL
  • 如何使用MySQL和Ruby实现一个简单的异步任务调度功能
    如何使用MySQL和Ruby实现一个简单的异步任务调度功能以前的Web应用程序大多采用同步的方式来处理请求,即用户发送请求后,服务器会立即处理完请求并返回结果。然而,随着应用程序复杂度的增加,同步方式的处理效率逐渐变得低下,因此异步任务调度...
    99+
    2023-10-22
    MySQL Ruby 异步任务调度
  • 如何使用MySQL和Java实现一个简单的视频分享功能
    如何使用MySQL和Java实现一个简单的视频分享功能随着互联网的普及和带宽的提升,视频分享成为了当今最受欢迎的网络媒体形式之一。在这篇文章中,我们将探讨如何使用MySQL和Java来实现一个简单的视频分享功能。一、数据库设计首先,我们需要...
    99+
    2023-10-22
    MySQL Java 视频分享
  • 如何使用MySQL和JavaScript实现一个简单的数据分析功能
    如何使用MySQL和JavaScript实现一个简单的数据分析功能MySQL是一种常用的关系型数据库管理系统,而JavaScript是一种常用的脚本语言,结合使用这两种技术,我们可以实现一个简单的数据分析功能。本文将介绍如何通过MySQL和...
    99+
    2023-10-22
    数据分析 MySQL JavaScript
  • 如何使用纯CSS和jQuery实现在页面顶部显示的进度条效果
    小编给大家分享一下如何使用纯CSS和jQuery实现在页面顶部显示的进度条效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、纯CSS实现代码如下:<style type...
    99+
    2022-10-19
  • 如何使用MySQL和JavaScript实现一个简单的在线投资分析功能
    要实现一个简单的在线投资分析功能,你可以使用MySQL来存储投资数据,并使用JavaScript来处理和展示数据。以下是一个简单的实...
    99+
    2023-10-20
    MySQL
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作