使用jQuery原生插件,先看效果:

主要是progressbar的更新进度以及“请稍等”后省略号、倒计时关闭的效果

如果执行单个任务的时间较长,会导致浏览器假死,一定要使用异步,代码结构要稍作调整。

<%--
Created by IntelliJ IDEA.
Author: Duelsol
Date: 2015/2/25
Time: 16:21
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<title>执行进度条示例</title>
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/framework/css/blue/jquery-ui.css"/>
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/framework/css/blue/jquery-plugin.css"/>
<script type="text/javascript" src="${pageContext.request.contextPath}/framework/js/jquery.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/framework/js/jquery-ui.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/framework/js/jquery-plugin.js"></script>
<script type="text/javascript">
// 总执行数
var totalMission;
// 完成执行数
var completeMission;
// 具体执行任务
var bnContainer = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"];
// 将于X秒后关闭
var countdown; // 以下4个用于clearInterval和clearTimeout
var interval;
var timeout = [];
var finish;
var close; // 执行按钮点击事件
function importAll() {
totalMission = 10;
completeMission = 0; $("body").append("<div style='display:none' id='waitimport'><div style='padding-top: 20px'></div><div id='divProgressbar'></div><div style='text-align: center'><span id='divText' style='margin: auto'></span></div></div>");
var $alertDiv = $("#waitimport");
$alertDiv.dialog({
title: "<span id='changingtitle'>导入中,请稍等<span id='changingdot'></span></span>",
modal: true,
resizable: false,
zIndex: 99999*2
});
$alertDiv.parent().find(".ui-dialog-titlebar-close").hide();
$("#divProgressbar").progressbar(); interval = setInterval("changeDot()", 1000); alterProgressBar(bnContainer[completeMission]);
timeout.push(setTimeout("running(" + completeMission + ")", 1500));
clearTimeout(finish);
clearInterval(close);
} // 改变进度条
function alterProgressBar(text) {
$("#divText").html("正在执行" + text);
$("#divProgressbar").progressbar("option", "value", completeMission / totalMission * 100);
} function running() {
alterProgressBar(bnContainer[++completeMission]);
if (completeMission == totalMission) {
finishImport();
} else {
timeout.push(setTimeout("running(" + completeMission + ")", 1500));
}
} function finishImport() {
clearInterval(interval);
for (var i = 0; i < timeout.length; i++) {
clearTimeout(timeout[i]);
} countdown = 5;
$("#changingtitle").html("执行结束");
$("#divText").html("本窗口将于<span id='countdown'>" + countdown + "</span>秒后关闭");
finish = setTimeout('$("#waitimport").remove()', 5000);
close = setInterval('$("#countdown").html(--countdown)', 1000);
} // 省略号每秒改变事件
function changeDot() {
var changingdot = $("#changingdot");
if (changingdot.html() == "") {
changingdot.html(".");
} else if (changingdot.html() == ".") {
changingdot.html("..");
} else if (changingdot.html() == "..") {
changingdot.html("...");
} else {
changingdot.html("");
}
} function changeColor(type) {
if (type == 1) {
$("#bn_importall").css("color", "lightskyblue").css("background-color", "white");
} else {
$("#bn_importall").css("color", "white").css("background-color", "lightskyblue");
}
}
</script>
</head>
<body>
<div style="text-align: center;">
<input type="button" id="bn_importall" onclick="importAll()" onmouseover="changeColor(1)" onmouseout="changeColor(2)" value="执行"
style="width: 250px;height: 100px;cursor: pointer;font-size: 50px;color: white;margin: auto;background-color: lightskyblue;border: dashed"/>
</div>
</body>
</html>

jQuery执行进度提示窗口的实现(progressbar)的更多相关文章

  1. JQuery入门——进度条

    越来越觉得常规javascript已经跟不上节奏了,打算学点进阶的,从JQuery学起. JQuery是一个Javascript库,可以从JQuery.com下载,放到本地,用 <script ...

  2. jquery自定义进度条与h5原生进度条

      介绍一款自定义的进度条 <div class="box-nine"> <div class="progress"> <!--一 ...

  3. pv命令监控Linux命令的执行进度

    pv命令监控Linux命令的执行进度 http://www.techweb.com.cn/network/system/2015-12-14/2241124.shtml yum install -y ...

  4. 通过DeveloperApi获取spark程序执行进度及异常

    在应用spark时,经常要获取任务的执行进度,可以参照jobProgressListener的设计来完成该功能. 以下代码仅供参考,欢迎交流. 效果显示: 代码: package org.apache ...

  5. 【MS SQL】查看任务执行进度

    原文:[MS SQL]查看任务执行进度 备份或还原数据库时,我一般是用MS SQL工具向导来进行,由于工具向导没有显示任务执行过程的状态, 如果数据库比较大执行时间较长的话,对任务啥时候执行完成比较迷 ...

  6. 【原创】大叔经验分享(19)spark on yarn提交任务之后执行进度总是10%

    spark 2.1.1 系统中希望监控spark on yarn任务的执行进度,但是监控过程发现提交任务之后执行进度总是10%,直到执行成功或者失败,进度会突然变为100%,很神奇, 下面看spark ...

  7. 基于jQuery带进度条全屏图片轮播代码

    基于jQuery带进度条全屏图片轮播代码.这是一款基于jQuery实现的oppo手机官网首页带进度条全屏图片轮播特效.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div ...

  8. JQuery UI进度条——Progressbar

    1.先引入jquery和jquery-ui的js,例子如下: <link href="JqueryUI/jquery-ui.css" rel="stylesheet ...

  9. 基于Jquery的进度条插件(实用)

    Spin.js 最喜欢这款插件了,动画图片的长度.粗细.速度和角度都可以灵活控制,想要做成什么样都可以. 源码下载    在线演示   Percentage Loader 一款轻量的 jQuery 进 ...

随机推荐

  1. 啥数据类型set补充、深浅拷贝与函数

    #s1 = {1,2,3,1} """ s2 = ([2,5,6]) print(s1) s1.add(5) #添加元素"5" print(s1) s ...

  2. 关于java集合排序

    对于排序,java开发者并不陌生. 为避免以后遗忘,现在再次总结一下! 常见8大排序算法, 平时自己熟悉的只有几种种!冒泡,二分/折半.插入.快排等!现在一一讲解一下,这里只讲思想,暂时不做实现! 一 ...

  3. JS中的call()和apply()方法理解和使用

    1.方法定义call方法: 语法:obj.method.call(thisObj[,arg1[, arg2[, [,.argN]]]]) 定义:调用对象(obj)的一个方法(method),以另一个对 ...

  4. Form标签+Css基础

      一.Form表单标签 <form action="" method=""></form>    表单就是用来将用户的信息提交到服务器 ...

  5. openstack私有云布署实践【18 修改实例DHCP服务的DNS IP】

    某天,由于Linux服务器默认没有DNS缓存功能,每次服务器每访问一个http域名链接时,都会触发一次DNS域名解析查询,降低了调用API接口的时延,所以我司后续启用的内网的dnsmasq DNS服务 ...

  6. DP! | 不要怂!

    跟一个博客刷: http://blog.csdn.net/cc_again/article/details/25866971 一.简单基础dp 1.递推 HDU 2084 #include <b ...

  7. Android_AndroidStudio配置

    IDE降低了程序编译的门槛, 让Android程序的编译和运行变得简单易操作. 但无论Eclipse还是Android Studio, IDE都不是非常智能和可靠的, 总会出大大小小的问题. 很多时候 ...

  8. 导入导出Mysql数据库、表结构、表数据

    由sql文件导入 mysql -uusername -ppwd < ./abc.sql 导出整个数据库的表结构 mysqldump -uroot -pdbpasswd -d dbname > ...

  9. ElasticSearch(7)-排序

    引用自ElaticSearch权威指南 一.排序 相关性排序 默认情况下,结果集会按照相关性进行排序 -- 相关性越高,排名越靠前. 这一章我们会讲述相关性是什么以及它是如何计算的. 在此之前,我们先 ...

  10. maven发布本地包,eclipse-maven集成tomcat7热部署项目

    国内maven 库 :http://maven.aliyun.com/nexus/content/groups/public/ maven安装不在中央仓库的jar包: mvn install:inst ...